summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2026-05-12 20:50:44 +0200
committerGitHub <noreply@github.com>2026-05-12 20:50:44 +0200
commit0bb7400136dd84c00abdaf96c5dbdb63c02f836f (patch)
tree17421cfcfc42800ba7668e966234e2448ff226ed
parent1570b7d2d63aed0a77fc2077618b766eebaba56e (diff)
ActorItemSeller OK (#164)
-rw-r--r--config/eur/arm9/overlays/ov014/symbols.txt6
-rw-r--r--config/eur/arm9/overlays/ov018/symbols.txt2
-rw-r--r--config/eur/arm9/overlays/ov031/delinks.txt6
-rw-r--r--config/eur/arm9/overlays/ov031/relocs.txt6
-rw-r--r--config/eur/arm9/overlays/ov031/symbols.txt57
-rw-r--r--config/usa/arm9/overlays/ov014/symbols.txt6
-rw-r--r--config/usa/arm9/overlays/ov018/symbols.txt2
-rw-r--r--config/usa/arm9/overlays/ov031/delinks.txt6
-rw-r--r--config/usa/arm9/overlays/ov031/relocs.txt6
-rw-r--r--config/usa/arm9/overlays/ov031/symbols.txt57
-rw-r--r--include/Actor/ActorTypeId.hpp4
-rw-r--r--include/Actor/Character/ActorCharacter.hpp15
-rw-r--r--include/Actor/Character/ActorItemSeller.hpp50
-rw-r--r--include/Message/MsgProc.hpp1
-rw-r--r--src/14_Land/Actor/Character/ActorCharacter.cpp4
-rw-r--r--src/14_Land/Actor/Character/ActorGenericCharacter.cpp2
-rw-r--r--src/31_Shop/Actor/ActorBeedle.cpp14
-rw-r--r--src/31_Shop/Actor/ActorItemSeller.cpp155
18 files changed, 271 insertions, 128 deletions
diff --git a/config/eur/arm9/overlays/ov014/symbols.txt b/config/eur/arm9/overlays/ov014/symbols.txt
index 2d7d3ff0..00f849fe 100644
--- a/config/eur/arm9/overlays/ov014/symbols.txt
+++ b/config/eur/arm9/overlays/ov014/symbols.txt
@@ -1105,7 +1105,7 @@ _ZN14ActorCharacterD2Ev kind:function(arm,size=0x48) addr:0x021450a8
_ZN14ActorCharacter4InitEv kind:function(arm,size=0x10) addr:0x021450f0
_ZN14ActorCharacter8vfunc_20Eb kind:function(arm,size=0x78) addr:0x02145100
_ZN14ActorCharacter19func_ov014_02145178Ev kind:function(arm,size=0x78) addr:0x02145178
-_ZN14ActorCharacter19func_ov014_021451f0EPi kind:function(arm,size=0x68) addr:0x021451f0
+_ZN14ActorCharacter19func_ov014_021451f0EPKi kind:function(arm,size=0x68) addr:0x021451f0
_ZN14ActorCharacter19func_ov014_02145258Ev kind:function(arm,size=0x58) addr:0x02145258
_ZN14ActorCharacter19func_ov014_021452b0Ev kind:function(arm,size=0x68) addr:0x021452b0
_ZN14ActorCharacter19func_ov014_02145318Ev kind:function(arm,size=0xdc) addr:0x02145318
@@ -1128,10 +1128,10 @@ _ZN14ActorCharacter8vfunc_98Ev kind:function(arm,size=0x2c) addr:0x02145874
_ZN14ActorCharacter8vfunc_d0Ev kind:function(arm,size=0x10) addr:0x021458a0
_ZN14ActorCharacter8vfunc_9cEv kind:function(arm,size=0x1c) addr:0x021458b0
_ZN14ActorCharacter8vfunc_ecEi kind:function(arm,size=0x34) addr:0x021458cc
-_ZN14ActorCharacter8vfunc_f0Eii kind:function(arm,size=0x1c) addr:0x02145900
+_ZN14ActorCharacter8vfunc_f0Ebi kind:function(arm,size=0x1c) addr:0x02145900
_ZN14ActorCharacter19func_ov014_0214591cEv kind:function(arm,size=0x58) addr:0x0214591c
_ZN14ActorCharacter15IsHitboxTouchedEb kind:function(arm,size=0x100) addr:0x02145974
-func_ov014_02145a74 kind:function(arm,size=0x74) addr:0x02145a74
+_ZN18ActorCharacter_1d819func_ov014_02145a74Eii kind:function(arm,size=0x74) addr:0x02145a74
func_ov014_02145ae8 kind:function(arm,size=0x30) addr:0x02145ae8
func_ov014_02145b18 kind:function(arm,size=0xb4) addr:0x02145b18
func_ov014_02145bcc kind:function(arm,size=0xb0) addr:0x02145bcc
diff --git a/config/eur/arm9/overlays/ov018/symbols.txt b/config/eur/arm9/overlays/ov018/symbols.txt
index 137ee419..245da2d3 100644
--- a/config/eur/arm9/overlays/ov018/symbols.txt
+++ b/config/eur/arm9/overlays/ov018/symbols.txt
@@ -154,7 +154,7 @@ func_ov018_021608c8 kind:function(arm,size=0x90) addr:0x021608c8
func_ov018_02160958 kind:function(arm,size=0x10) addr:0x02160958
func_ov018_02160968 kind:function(arm,size=0xa8) addr:0x02160968
func_ov018_02160a10 kind:function(arm,size=0x44) addr:0x02160a10
-func_ov018_02160a54 kind:function(arm,size=0x10) addr:0x02160a54
+_ZN17UnkClass_027e0e2819func_ov018_02160a54Ei kind:function(arm,size=0x10) addr:0x02160a54
_ZN17UnkClass_027e0e2819func_ov018_02160a64Eii kind:function(arm,size=0x10) addr:0x02160a64
func_ov018_02160a74 kind:function(arm,size=0x10) addr:0x02160a74
func_ov018_02160a84 kind:function(arm,size=0x1c) addr:0x02160a84
diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt
index a3cb0bf0..fa333ce4 100644
--- a/config/eur/arm9/overlays/ov031/delinks.txt
+++ b/config/eur/arm9/overlays/ov031/delinks.txt
@@ -21,7 +21,13 @@ src/31_Shop/Actor/ActorShopItem.cpp:
.bss start:0x02183e88 end:0x02184154
src/31_Shop/Actor/ActorItemSeller.cpp:
+ complete
.text start:0x02180708 end:0x02180a84
+ .rodata start:0x02181a88 end:0x02181abc
+ .init start:0x02181f58 end:0x02182000
+ .ctor start:0x02182084 end:0x02182088
+ .data start:0x02183a98 end:0x02183c00
+ .bss start:0x02184154 end:0x021841b4
src/31_Shop/Actor/ActorBeedle.cpp:
.text start:0x02180a84 end:0x02181448
diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt
index 32e0c7c3..8f806fd5 100644
--- a/config/eur/arm9/overlays/ov031/relocs.txt
+++ b/config/eur/arm9/overlays/ov031/relocs.txt
@@ -713,15 +713,15 @@ from:0x021806fc kind:arm_call to:0x0217e6b4 module:overlay(31)
from:0x02180720 kind:arm_call to:0x0202e9dc module:main
from:0x0218072c kind:arm_call to:0x0217cf2c module:overlay(31)
from:0x02180740 kind:load to:0x027e0fe0 module:dtcm
-from:0x02180748 kind:load to:0x02183ae0 module:overlay(31)
+from:0x02180748 kind:load to:0x02183ad8 module:overlay(31) add:0x8
from:0x02180764 kind:arm_call to:0x0202e9dc module:main
from:0x02180770 kind:arm_call to:0x0217cf2c module:overlay(31)
from:0x02180784 kind:load to:0x027e0fe0 module:dtcm
-from:0x0218078c kind:load to:0x02183ae0 module:overlay(31)
+from:0x0218078c kind:load to:0x02183ad8 module:overlay(31) add:0x8
from:0x021807a8 kind:arm_call to:0x0202e9dc module:main
from:0x021807b4 kind:arm_call to:0x0217cf2c module:overlay(31)
from:0x021807c8 kind:load to:0x027e0fe0 module:dtcm
-from:0x021807d0 kind:load to:0x02183ae0 module:overlay(31)
+from:0x021807d0 kind:load to:0x02183ad8 module:overlay(31) add:0x8
from:0x02180820 kind:arm_call to:0x02145a74 module:overlay(14)
from:0x02180834 kind:arm_call to:0x021451f0 module:overlay(14)
from:0x02180844 kind:arm_call to:0x0217cfd4 module:overlay(31)
diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt
index 71bfb654..e5027138 100644
--- a/config/eur/arm9/overlays/ov031/symbols.txt
+++ b/config/eur/arm9/overlays/ov031/symbols.txt
@@ -242,19 +242,19 @@ _ZN16ActorItemSeller16CreateEv kind:function(arm,size=0x44) addr:0x02180708
_ZN16ActorItemSeller26CreateEv kind:function(arm,size=0x44) addr:0x0218074c
_ZN16ActorItemSeller36CreateEv kind:function(arm,size=0x44) addr:0x02180790
_ZN15ActorItemSeller4InitEv kind:function(arm,size=0x84) addr:0x021807d4
-_ZN15ActorItemSeller9vfunc_114Ev kind:function(arm,size=0x108) addr:0x02180858
-_ZN15ActorItemSeller8vfunc_f4Ev kind:function(arm,size=0xc) addr:0x02180960
-_ZN15ActorItemSeller8vfunc_f8Ev kind:function(arm,size=0xc) addr:0x0218096c
-_ZN15ActorItemSeller8vfunc_fcEv kind:function(arm,size=0xc) addr:0x02180978
-_ZN15ActorItemSeller9vfunc_100Ev kind:function(arm,size=0xc) addr:0x02180984
-_ZN15ActorItemSeller9vfunc_104Ev kind:function(arm,size=0xc) addr:0x02180990
+_ZN15ActorItemSeller9vfunc_114Ei kind:function(arm,size=0x108) addr:0x02180858
+_ZN15ActorItemSeller16GetPromptMessageEv kind:function(arm,size=0xc) addr:0x02180960
+_ZN15ActorItemSeller18GetPurchaseMessageEv kind:function(arm,size=0xc) addr:0x0218096c
+_ZN15ActorItemSeller24GetNotEnoughMoneyMessageEv kind:function(arm,size=0xc) addr:0x02180978
+_ZN15ActorItemSeller17GetGoodbyeMessageEv kind:function(arm,size=0xc) addr:0x02180984
+_ZN15ActorItemSeller23GetInventoryFullMessageEv kind:function(arm,size=0xc) addr:0x02180990
_ZN15ActorItemSeller9vfunc_118Ev kind:function(arm,size=0x18) addr:0x0218099c
_ZN15ActorItemSeller8vfunc_d4Ev kind:function(arm,size=0xc) addr:0x021809b4
_ZN15ActorItemSeller9vfunc_108Ev kind:function(arm,size=0x18) addr:0x021809c0
-_ZN15ActorItemSeller9vfunc_10cEv kind:function(arm,size=0x2c) addr:0x021809d8
+_ZN15ActorItemSeller9vfunc_10cEb kind:function(arm,size=0x2c) addr:0x021809d8
_ZN15ActorItemSeller9vfunc_110Ev kind:function(arm,size=0x50) addr:0x02180a04
-_ZN15ActorItemSellerD1Ev kind:function(arm,size=0x1c) addr:0x02180a54
-_ZN15ActorItemSellerD0Ev kind:function(arm,size=0x14) addr:0x02180a70
+_ZN15ActorItemSellerD0Ev kind:function(arm,size=0x1c) addr:0x02180a54
+_ZN15ActorItemSellerD1Ev kind:function(arm,size=0x14) addr:0x02180a70
_ZN11ActorBeedle6CreateEv kind:function(arm,size=0x44) addr:0x02180a84
_ZN11ActorBeedle4InitEv kind:function(arm,size=0x108) addr:0x02180ac8
_ZN11ActorBeedle8vfunc_c4Ev kind:function(arm,size=0x118) addr:0x02180bd0
@@ -294,8 +294,8 @@ sShopItemBaseNames kind:data(any) addr:0x021818e8 local
unk$1534 kind:data(any) addr:0x02181a58 local
unk$1554 kind:data(any) addr:0x02181a6c local
@2460 kind:data(any) addr:0x02181a80 local
-data_ov031_02181a88 kind:data(any) addr:0x02181a88
-data_ov031_02181a94 kind:data(any) addr:0x02181a94
+sUnk1$1294 kind:data(any) addr:0x02181a88 local
+sUnk2$1295 kind:data(any) addr:0x02181a94 local
data_ov031_02181abc kind:data(any) addr:0x02181abc
data_ov031_02181ac8 kind:data(any) addr:0x02181ac8
data_ov031_02181ad4 kind:data(any) addr:0x02181ad4
@@ -303,11 +303,11 @@ data_ov031_02181b10 kind:data(any) addr:0x02181b10
data_ov031_02181b24 kind:data(any) addr:0x02181b24
data_ov031_02181b30 kind:data(any) addr:0x02181b30
__sinit_ActorShopItem.cpp kind:function(arm,size=0x3ec) addr:0x02181b6c local
-__sinit_ov031_02181f58 kind:function(arm,size=0xa8) addr:0x02181f58
+__sinit_ActorItemSeller.cpp kind:function(arm,size=0xa8) addr:0x02181f58 local
__sinit_ov031_02182000 kind:function(arm,size=0x40) addr:0x02182000
__sinit_ov031_02182040 kind:function(arm,size=0x40) addr:0x02182040
.p__sinit_ActorShopItem.cpp kind:data(word) addr:0x02182080 local
-.p__sinit_ov031_02181f58 kind:data(word) addr:0x02182084
+.p__sinit_ActorItemSeller.cpp kind:data(word) addr:0x02182084 local
.p__sinit_ov031_02182000 kind:data(word) addr:0x02182088
.p__sinit_ov031_02182040 kind:data(word) addr:0x0218208c
data_ov031_021820a0 kind:data(any) addr:0x021820a0
@@ -406,15 +406,16 @@ _ZTV17ActorShopItemBase kind:data(any) addr:0x021834a4
@1262 kind:data(any) addr:0x02183a44 local
@1263 kind:data(any) addr:0x02183a60 local
@1264 kind:data(any) addr:0x02183a7c local
-data_ov031_02183a98 kind:data(any) addr:0x02183a98
-data_ov031_02183a9c kind:data(any) addr:0x02183a9c
-data_ov031_02183aa0 kind:data(any) addr:0x02183aa0
-data_ov031_02183aa4 kind:data(any) addr:0x02183aa4
-data_ov031_02183aa8 kind:data(any) addr:0x02183aa8
-data_ov031_02183aac kind:data(any) addr:0x02183aac
-data_ov031_02183ab0 kind:data(any) addr:0x02183ab0
-data_ov031_02183ab4 kind:data(any) addr:0x02183ab4
-data_ov031_02183ae0 kind:data(any) addr:0x02183ae0
+@1278 kind:data(any) addr:0x02183a98 local
+@1279 kind:data(any) addr:0x02183a9c local
+@1280 kind:data(any) addr:0x02183aa0 local
+@1281 kind:data(any) addr:0x02183aa4 local
+@1282 kind:data(any) addr:0x02183aa8 local
+@1283 kind:data(any) addr:0x02183aac local
+@1284 kind:data(any) addr:0x02183ab0 local
+@1285 kind:data(any) addr:0x02183ab4 local
+sShipTypes kind:data(any) addr:0x02183ab8 local
+_ZTV15ActorItemSeller kind:data(any) addr:0x02183ad8
data_ov031_02183c00 kind:data(any) addr:0x02183c00
data_ov031_02183c04 kind:data(any) addr:0x02183c04
data_ov031_02183c08 kind:data(any) addr:0x02183c08
@@ -472,12 +473,12 @@ sShopItemShip2TextureFile kind:bss addr:0x02184144 local
sSoldOutModel kind:bss addr:0x02184148 local
sShipModel kind:bss addr:0x0218414c local
sShip2Model kind:bss addr:0x02184150 local
-data_ov031_02184154 kind:bss addr:0x02184154
-data_ov031_02184160 kind:bss addr:0x02184160
-data_ov031_02184174 kind:bss addr:0x02184174
-data_ov031_02184180 kind:bss addr:0x02184180
-data_ov031_02184194 kind:bss addr:0x02184194
-data_ov031_021841a0 kind:bss addr:0x021841a0
+@1233 kind:bss addr:0x02184154 local
+_ZN16ActorItemSeller15gTypeE kind:bss addr:0x02184160
+@1235 kind:bss addr:0x02184174 local
+_ZN16ActorItemSeller25gTypeE kind:bss addr:0x02184180
+@1237 kind:bss addr:0x02184194 local
+_ZN16ActorItemSeller35gTypeE kind:bss addr:0x021841a0
data_ov031_021841b4 kind:bss addr:0x021841b4
data_ov031_021841c0 kind:bss addr:0x021841c0
data_ov031_021841d4 kind:bss addr:0x021841d4
diff --git a/config/usa/arm9/overlays/ov014/symbols.txt b/config/usa/arm9/overlays/ov014/symbols.txt
index 12439e82..f4dc05c2 100644
--- a/config/usa/arm9/overlays/ov014/symbols.txt
+++ b/config/usa/arm9/overlays/ov014/symbols.txt
@@ -1105,7 +1105,7 @@ _ZN14ActorCharacterD2Ev kind:function(arm,size=0x48) addr:0x02145004
_ZN14ActorCharacter4InitEv kind:function(arm,size=0x10) addr:0x0214504c
_ZN14ActorCharacter8vfunc_20Eb kind:function(arm,size=0x78) addr:0x0214505c
_ZN14ActorCharacter19func_ov014_02145178Ev kind:function(arm,size=0x78) addr:0x021450d4
-_ZN14ActorCharacter19func_ov014_021451f0EPi kind:function(arm,size=0x68) addr:0x0214514c
+_ZN14ActorCharacter19func_ov014_021451f0EPKi kind:function(arm,size=0x68) addr:0x0214514c
_ZN14ActorCharacter19func_ov014_02145258Ev kind:function(arm,size=0x58) addr:0x021451b4
_ZN14ActorCharacter19func_ov014_021452b0Ev kind:function(arm,size=0x68) addr:0x0214520c
_ZN14ActorCharacter19func_ov014_02145318Ev kind:function(arm,size=0xdc) addr:0x02145274
@@ -1128,10 +1128,10 @@ _ZN14ActorCharacter8vfunc_98Ev kind:function(arm,size=0x2c) addr:0x021457d0
_ZN14ActorCharacter8vfunc_d0Ev kind:function(arm,size=0x10) addr:0x021457fc
_ZN14ActorCharacter8vfunc_9cEv kind:function(arm,size=0x1c) addr:0x0214580c
_ZN14ActorCharacter8vfunc_ecEi kind:function(arm,size=0x34) addr:0x02145828
-_ZN14ActorCharacter8vfunc_f0Eii kind:function(arm,size=0x1c) addr:0x0214585c
+_ZN14ActorCharacter8vfunc_f0Ebi kind:function(arm,size=0x1c) addr:0x0214585c
_ZN14ActorCharacter19func_ov014_0214591cEv kind:function(arm,size=0x58) addr:0x02145878
_ZN14ActorCharacter15IsHitboxTouchedEb kind:function(arm,size=0x100) addr:0x021458d0
-func_ov014_02145a74 kind:function(arm,size=0x74) addr:0x021459d0
+_ZN18ActorCharacter_1d819func_ov014_02145a74Eii kind:function(arm,size=0x74) addr:0x021459d0
func_ov014_02145ae8 kind:function(arm,size=0x30) addr:0x02145a44
func_ov014_02145b18 kind:function(arm,size=0xb4) addr:0x02145a74
func_ov014_02145bcc kind:function(arm,size=0xb0) addr:0x02145b28
diff --git a/config/usa/arm9/overlays/ov018/symbols.txt b/config/usa/arm9/overlays/ov018/symbols.txt
index ad671c78..3f32d3ed 100644
--- a/config/usa/arm9/overlays/ov018/symbols.txt
+++ b/config/usa/arm9/overlays/ov018/symbols.txt
@@ -154,7 +154,7 @@ func_ov018_021608c8 kind:function(arm,size=0x90) addr:0x02160828
func_ov018_02160958 kind:function(arm,size=0x10) addr:0x021608b8
func_ov018_02160968 kind:function(arm,size=0xa8) addr:0x021608c8
func_ov018_02160a10 kind:function(arm,size=0x44) addr:0x02160970
-func_ov018_02160a54 kind:function(arm,size=0x10) addr:0x021609b4
+_ZN17UnkClass_027e0e2819func_ov018_02160a54Ei kind:function(arm,size=0x10) addr:0x021609b4
_ZN17UnkClass_027e0e2819func_ov018_02160a64Eii kind:function(arm,size=0x10) addr:0x021609c4
func_ov018_02160a74 kind:function(arm,size=0x10) addr:0x021609d4
func_ov018_02160a84 kind:function(arm,size=0x1c) addr:0x021609e4
diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt
index e38623a9..1803b432 100644
--- a/config/usa/arm9/overlays/ov031/delinks.txt
+++ b/config/usa/arm9/overlays/ov031/delinks.txt
@@ -21,7 +21,13 @@ src/31_Shop/Actor/ActorShopItem.cpp:
.bss start:0x02183de8 end:0x021840b4
src/31_Shop/Actor/ActorItemSeller.cpp:
+ complete
.text start:0x02180668 end:0x021809e4
+ .rodata start:0x021819e8 end:0x02181a1c
+ .init start:0x02181eb8 end:0x02181f60
+ .ctor start:0x02181fe4 end:0x02181fe8
+ .data start:0x021839f8 end:0x02183b60
+ .bss start:0x021840b4 end:0x02184114
src/31_Shop/Actor/ActorBeedle.cpp:
.text start:0x021809e4 end:0x021813a8
diff --git a/config/usa/arm9/overlays/ov031/relocs.txt b/config/usa/arm9/overlays/ov031/relocs.txt
index b6672951..43c25370 100644
--- a/config/usa/arm9/overlays/ov031/relocs.txt
+++ b/config/usa/arm9/overlays/ov031/relocs.txt
@@ -713,15 +713,15 @@ from:0x0218065c kind:arm_call to:0x0217e614 module:overlay(31)
from:0x02180680 kind:arm_call to:0x0202e9d8 module:main
from:0x0218068c kind:arm_call to:0x0217ce8c module:overlay(31)
from:0x021806a0 kind:load to:0x027e0fe0 module:dtcm
-from:0x021806a8 kind:load to:0x02183a40 module:overlay(31)
+from:0x021806a8 kind:load to:0x02183a38 module:overlay(31) add:0x8
from:0x021806c4 kind:arm_call to:0x0202e9d8 module:main
from:0x021806d0 kind:arm_call to:0x0217ce8c module:overlay(31)
from:0x021806e4 kind:load to:0x027e0fe0 module:dtcm
-from:0x021806ec kind:load to:0x02183a40 module:overlay(31)
+from:0x021806ec kind:load to:0x02183a38 module:overlay(31) add:0x8
from:0x02180708 kind:arm_call to:0x0202e9d8 module:main
from:0x02180714 kind:arm_call to:0x0217ce8c module:overlay(31)
from:0x02180728 kind:load to:0x027e0fe0 module:dtcm
-from:0x02180730 kind:load to:0x02183a40 module:overlay(31)
+from:0x02180730 kind:load to:0x02183a38 module:overlay(31) add:0x8
from:0x02180780 kind:arm_call to:0x021459d0 module:overlay(14)
from:0x02180794 kind:arm_call to:0x0214514c module:overlay(14)
from:0x021807a4 kind:arm_call to:0x0217cf34 module:overlay(31)
diff --git a/config/usa/arm9/overlays/ov031/symbols.txt b/config/usa/arm9/overlays/ov031/symbols.txt
index 2ce790e2..39758fa7 100644
--- a/config/usa/arm9/overlays/ov031/symbols.txt
+++ b/config/usa/arm9/overlays/ov031/symbols.txt
@@ -242,19 +242,19 @@ _ZN16ActorItemSeller16CreateEv kind:function(arm,size=0x44) addr:0x02180668
_ZN16ActorItemSeller26CreateEv kind:function(arm,size=0x44) addr:0x021806ac
_ZN16ActorItemSeller36CreateEv kind:function(arm,size=0x44) addr:0x021806f0
_ZN15ActorItemSeller4InitEv kind:function(arm,size=0x84) addr:0x02180734
-_ZN15ActorItemSeller9vfunc_114Ev kind:function(arm,size=0x108) addr:0x021807b8
-_ZN15ActorItemSeller8vfunc_f4Ev kind:function(arm,size=0xc) addr:0x021808c0
-_ZN15ActorItemSeller8vfunc_f8Ev kind:function(arm,size=0xc) addr:0x021808cc
-_ZN15ActorItemSeller8vfunc_fcEv kind:function(arm,size=0xc) addr:0x021808d8
-_ZN15ActorItemSeller9vfunc_100Ev kind:function(arm,size=0xc) addr:0x021808e4
-_ZN15ActorItemSeller9vfunc_104Ev kind:function(arm,size=0xc) addr:0x021808f0
+_ZN15ActorItemSeller9vfunc_114Ei kind:function(arm,size=0x108) addr:0x021807b8
+_ZN15ActorItemSeller16GetPromptMessageEv kind:function(arm,size=0xc) addr:0x021808c0
+_ZN15ActorItemSeller18GetPurchaseMessageEv kind:function(arm,size=0xc) addr:0x021808cc
+_ZN15ActorItemSeller24GetNotEnoughMoneyMessageEv kind:function(arm,size=0xc) addr:0x021808d8
+_ZN15ActorItemSeller17GetGoodbyeMessageEv kind:function(arm,size=0xc) addr:0x021808e4
+_ZN15ActorItemSeller23GetInventoryFullMessageEv kind:function(arm,size=0xc) addr:0x021808f0
_ZN15ActorItemSeller9vfunc_118Ev kind:function(arm,size=0x18) addr:0x021808fc
_ZN15ActorItemSeller8vfunc_d4Ev kind:function(arm,size=0xc) addr:0x02180914
_ZN15ActorItemSeller9vfunc_108Ev kind:function(arm,size=0x18) addr:0x02180920
-_ZN15ActorItemSeller9vfunc_10cEv kind:function(arm,size=0x2c) addr:0x02180938
+_ZN15ActorItemSeller9vfunc_10cEb kind:function(arm,size=0x2c) addr:0x02180938
_ZN15ActorItemSeller9vfunc_110Ev kind:function(arm,size=0x50) addr:0x02180964
-_ZN15ActorItemSellerD1Ev kind:function(arm,size=0x1c) addr:0x021809b4
-_ZN15ActorItemSellerD0Ev kind:function(arm,size=0x14) addr:0x021809d0
+_ZN15ActorItemSellerD0Ev kind:function(arm,size=0x1c) addr:0x021809b4
+_ZN15ActorItemSellerD1Ev kind:function(arm,size=0x14) addr:0x021809d0
_ZN11ActorBeedle6CreateEv kind:function(arm,size=0x44) addr:0x021809e4
_ZN11ActorBeedle4InitEv kind:function(arm,size=0x108) addr:0x02180a28
_ZN11ActorBeedle8vfunc_c4Ev kind:function(arm,size=0x118) addr:0x02180b30
@@ -294,8 +294,8 @@ sShopItemBaseNames kind:data(any) addr:0x02181848 local
unk$1534 kind:data(any) addr:0x021819b8 local
unk$1554 kind:data(any) addr:0x021819cc local
@2460 kind:data(any) addr:0x021819e0 local
-data_ov031_02181a88 kind:data(any) addr:0x021819e8
-data_ov031_02181a94 kind:data(any) addr:0x021819f4
+sUnk1$1294 kind:data(any) addr:0x021819e8 local
+sUnk2$1295 kind:data(any) addr:0x021819f4 local
data_ov031_02181abc kind:data(any) addr:0x02181a1c
data_ov031_02181ac8 kind:data(any) addr:0x02181a28
data_ov031_02181ad4 kind:data(any) addr:0x02181a34
@@ -303,11 +303,11 @@ data_ov031_02181b10 kind:data(any) addr:0x02181a70
data_ov031_02181b24 kind:data(any) addr:0x02181a84
data_ov031_02181b30 kind:data(any) addr:0x02181a90
__sinit_ActorShopItem.cpp kind:function(arm,size=0x3ec) addr:0x02181acc local
-__sinit_ov031_02181f58 kind:function(arm,size=0xa8) addr:0x02181eb8
+__sinit_ActorItemSeller.cpp kind:function(arm,size=0xa8) addr:0x02181eb8 local
__sinit_ov031_02182000 kind:function(arm,size=0x40) addr:0x02181f60
__sinit_ov031_02182040 kind:function(arm,size=0x40) addr:0x02181fa0
.p__sinit_ActorShopItem.cpp kind:data(word) addr:0x02181fe0 local
-.p__sinit_ov031_02181f58 kind:data(word) addr:0x02181fe4
+.p__sinit_ActorItemSeller.cpp kind:data(word) addr:0x02181fe4 local
.p__sinit_ov031_02182000 kind:data(word) addr:0x02181fe8
.p__sinit_ov031_02182040 kind:data(word) addr:0x02181fec
data_ov031_021820a0 kind:data(any) addr:0x02182000
@@ -406,15 +406,16 @@ _ZTV17ActorShopItemBase kind:data(any) addr:0x02183404
@1262 kind:data(any) addr:0x021839a4 local
@1263 kind:data(any) addr:0x021839c0 local
@1264 kind:data(any) addr:0x021839dc local
-data_ov031_02183a98 kind:data(any) addr:0x021839f8
-data_ov031_02183a9c kind:data(any) addr:0x021839fc
-data_ov031_02183aa0 kind:data(any) addr:0x02183a00
-data_ov031_02183aa4 kind:data(any) addr:0x02183a04
-data_ov031_02183aa8 kind:data(any) addr:0x02183a08
-data_ov031_02183aac kind:data(any) addr:0x02183a0c
-data_ov031_02183ab0 kind:data(any) addr:0x02183a10
-data_ov031_02183ab4 kind:data(any) addr:0x02183a14
-data_ov031_02183ae0 kind:data(any) addr:0x02183a40
+@1278 kind:data(any) addr:0x021839f8 local
+@1279 kind:data(any) addr:0x021839fc local
+@1280 kind:data(any) addr:0x02183a00 local
+@1281 kind:data(any) addr:0x02183a04 local
+@1282 kind:data(any) addr:0x02183a08 local
+@1283 kind:data(any) addr:0x02183a0c local
+@1284 kind:data(any) addr:0x02183a10 local
+@1285 kind:data(any) addr:0x02183a14 local
+sShipTypes kind:data(any) addr:0x02183a18 local
+_ZTV15ActorItemSeller kind:data(any) addr:0x02183a38
data_ov031_02183c00 kind:data(any) addr:0x02183b60
data_ov031_02183c04 kind:data(any) addr:0x02183b64
data_ov031_02183c08 kind:data(any) addr:0x02183b68
@@ -472,12 +473,12 @@ sShopItemShip2TextureFile kind:bss addr:0x021840a4 local
sSoldOutModel kind:bss addr:0x021840a8 local
sShipModel kind:bss addr:0x021840ac local
sShip2Model kind:bss addr:0x021840b0 local
-data_ov031_02184154 kind:bss addr:0x021840b4
-data_ov031_02184160 kind:bss addr:0x021840c0
-data_ov031_02184174 kind:bss addr:0x021840d4
-data_ov031_02184180 kind:bss addr:0x021840e0
-data_ov031_02184194 kind:bss addr:0x021840f4
-data_ov031_021841a0 kind:bss addr:0x02184100
+@1233 kind:bss addr:0x021840b4 local
+_ZN16ActorItemSeller15gTypeE kind:bss addr:0x021840c0
+@1235 kind:bss addr:0x021840d4 local
+_ZN16ActorItemSeller25gTypeE kind:bss addr:0x021840e0
+@1237 kind:bss addr:0x021840f4 local
+_ZN16ActorItemSeller35gTypeE kind:bss addr:0x02184100
data_ov031_021841b4 kind:bss addr:0x02184114
data_ov031_021841c0 kind:bss addr:0x02184120
data_ov031_021841d4 kind:bss addr:0x02184134
diff --git a/include/Actor/ActorTypeId.hpp b/include/Actor/ActorTypeId.hpp
index b0c6a5ee..fc4a5b23 100644
--- a/include/Actor/ActorTypeId.hpp
+++ b/include/Actor/ActorTypeId.hpp
@@ -32,6 +32,10 @@ enum ActorTypeId_ {
ActorTypeId_ShopItemGem = 'ITSR',
ActorTypeId_ShopItemTreasure = 'ITTR',
+ ActorTypeId_ItemSeller1 = 'ITSN',
+ ActorTypeId_ItemSeller2 = 'ITS2',
+ ActorTypeId_ItemSeller3 = 'ITS3',
+
ActorTypeId_RefillArrows = 'FLAL',
ActorTypeId_RefillBombs = 'FLBM',
ActorTypeId_RefillBombchus = 'FLBT',
diff --git a/include/Actor/Character/ActorCharacter.hpp b/include/Actor/Character/ActorCharacter.hpp
index c39e893e..b35f5a66 100644
--- a/include/Actor/Character/ActorCharacter.hpp
+++ b/include/Actor/Character/ActorCharacter.hpp
@@ -159,13 +159,19 @@ struct ActorCharacter_1d8_248 {
}
};
+struct ActorCharacter_1d8_230 {
+ /* 00 */ char mUnk_00[16];
+ /* 10 */ unk32 mUnk_10;
+ /* 14 */
+};
+
class ActorCharacter_1d8 : public UnkStruct_ov000_020c5c2c {
public:
/* 000 (base) */
/* 020 */ ActorCharacterModel mUnk_020;
/* 0b0 */ ActorCharacter_1d8_b0 mUnk_0b0[2];
/* 1b0 */ ActorCharacter_1d8_b0 mUnk_1b0;
- /* 230 */ unk32 mUnk_230;
+ /* 230 */ const ActorCharacter_1d8_230 *mUnk_230;
/* 234 */ unk32 mUnk_234;
/* 238 */ unk32 mUnk_238;
/* 23c */ unk32 mUnk_23c;
@@ -186,6 +192,7 @@ public:
mUnk_240(0x1000),
mUnk_244(0x11f) {}
+ void func_ov014_02145a74(unk32 param1, unk32 param2);
void func_ov014_02145cac();
void func_ov014_02145e48(unk32 param1);
bool func_ov014_02145f0c(unk32 param1);
@@ -232,7 +239,7 @@ public:
/* cc */ virtual void vfunc_cc() override;
/* d0 */ virtual void vfunc_d0() override;
/* ec */ virtual void vfunc_ec(unk32 param1);
- /* f0 */ virtual void vfunc_f0(unk32 param1, unk32 param2);
+ /* f0 */ virtual void vfunc_f0(bool param1, unk32 param2);
/* f4 */
ActorCharacter();
@@ -246,7 +253,7 @@ public:
bool func_ov014_02144e74();
void func_ov014_02145178();
- void func_ov014_021451f0(unk32 *param1);
+ void func_ov014_021451f0(const unk32 *param1);
void func_ov014_02145258();
unk32 func_ov014_021452b0();
unk32 func_ov014_02145318();
@@ -290,7 +297,7 @@ public:
/* 00 */ virtual ~ActorGenericCharacter() override;
/* 08 */ virtual bool Init() override;
- /* 68 */ virtual void vfunc_68() override;
+ /* 68 */ virtual void vfunc_68(unk32 param1, UnkStruct_020397f8 *param2) override;
/* 80 */ virtual void vfunc_80() override;
/* 84 */ virtual void vfunc_84() override;
/* c0 */ virtual bool vfunc_c0() override;
diff --git a/include/Actor/Character/ActorItemSeller.hpp b/include/Actor/Character/ActorItemSeller.hpp
index 26ce1ad6..2440b4ce 100644
--- a/include/Actor/Character/ActorItemSeller.hpp
+++ b/include/Actor/Character/ActorItemSeller.hpp
@@ -27,16 +27,16 @@ public:
/* 0c0 */ virtual bool vfunc_c0() override;
/* 0c4 */ virtual void vfunc_c4() override;
/* 0d4 */ virtual unk32 vfunc_d4() override;
- /* 0f4 */ virtual void vfunc_f4() = 0;
- /* 0f8 */ virtual void vfunc_f8() = 0;
- /* 0fc */ virtual void vfunc_fc() = 0;
- /* 100 */ virtual void vfunc_100() = 0;
- /* 104 */ virtual void vfunc_104() = 0;
- /* 108 */ virtual void vfunc_108() = 0;
- /* 10c */ virtual void vfunc_10c() = 0;
- /* 110 */ virtual void vfunc_110() = 0;
- /* 114 */ virtual unk32 vfunc_114(unk32 param1) = 0;
- /* 118 */ virtual void vfunc_118() = 0;
+ /* 0f4 */ virtual unk32 GetPromptMessage() = 0;
+ /* 0f8 */ virtual unk32 GetPurchaseMessage() = 0;
+ /* 0fc */ virtual unk32 GetNotEnoughMoneyMessage() = 0;
+ /* 100 */ virtual unk32 GetGoodbyeMessage() = 0;
+ /* 104 */ virtual unk32 GetInventoryFullMessage() = 0;
+ /* 108 */ virtual void vfunc_108() = 0;
+ /* 10c */ virtual void vfunc_10c(bool param1) = 0;
+ /* 110 */ virtual void vfunc_110() = 0;
+ /* 114 */ virtual unk32 vfunc_114(unk32 param1) = 0;
+ /* 118 */ virtual bool vfunc_118() = 0;
/* 11c */ virtual bool vfunc_11c();
/* 120 */
@@ -71,19 +71,19 @@ class ActorItemSeller : public ActorItemSellerBase {
/* 000 (base) */
/* 484 */
- /* 000 */ virtual ~ActorItemSeller() override;
+ /* 000 (implicit dtor) */
/* 008 */ virtual bool Init() override;
/* 0d4 */ virtual unk32 vfunc_d4() override;
- /* 0f4 */ virtual void vfunc_f4() override;
- /* 0f8 */ virtual void vfunc_f8() override;
- /* 0fc */ virtual void vfunc_fc() override;
- /* 100 */ virtual void vfunc_100() override;
- /* 104 */ virtual void vfunc_104() override;
+ /* 0f4 */ virtual unk32 GetPromptMessage() override;
+ /* 0f8 */ virtual unk32 GetPurchaseMessage() override;
+ /* 0fc */ virtual unk32 GetNotEnoughMoneyMessage() override;
+ /* 100 */ virtual unk32 GetGoodbyeMessage() override;
+ /* 104 */ virtual unk32 GetInventoryFullMessage() override;
/* 108 */ virtual void vfunc_108() override;
- /* 10c */ virtual void vfunc_10c() override;
+ /* 10c */ virtual void vfunc_10c(bool param1) override;
/* 110 */ virtual void vfunc_110() override;
/* 114 */ virtual unk32 vfunc_114(unk32 param1) override;
- /* 118 */ virtual void vfunc_118() override;
+ /* 118 */ virtual bool vfunc_118() override;
/* 120 */
};
@@ -118,16 +118,16 @@ public:
/* 0d8 */ virtual unk32 vfunc_d8(unk32 param1) override;
/* 0dc */ virtual unk32 vfunc_dc(unk32 param1) override;
/* 0e0 */ virtual unk32 vfunc_e0(unk32 param1) override;
- /* 0f4 */ virtual void vfunc_f4() override;
- /* 0f8 */ virtual void vfunc_f8() override;
- /* 0fc */ virtual void vfunc_fc() override;
- /* 100 */ virtual void vfunc_100() override;
- /* 104 */ virtual void vfunc_104() override;
+ /* 0f4 */ virtual unk32 GetPromptMessage() override;
+ /* 0f8 */ virtual unk32 GetPurchaseMessage() override;
+ /* 0fc */ virtual unk32 GetNotEnoughMoneyMessage() override;
+ /* 100 */ virtual unk32 GetGoodbyeMessage() override;
+ /* 104 */ virtual unk32 GetInventoryFullMessage() override;
/* 108 */ virtual void vfunc_108() override;
- /* 10c */ virtual void vfunc_10c() override;
+ /* 10c */ virtual void vfunc_10c(bool param1) override;
/* 110 */ virtual void vfunc_110() override;
/* 114 */ virtual unk32 vfunc_114(unk32 param1) override;
- /* 118 */ virtual void vfunc_118() override;
+ /* 118 */ virtual bool vfunc_118() override;
/* 11c */ virtual bool vfunc_11c() override;
static ActorBeedle *Create();
diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp
index 41dc85ce..b8140223 100644
--- a/include/Message/MsgProc.hpp
+++ b/include/Message/MsgProc.hpp
@@ -125,6 +125,7 @@ public:
unk32 func_ov000_0207bc48();
void func_ov000_0207bc9c();
+ bool func_ov018_02160a54(unk32);
bool func_ov018_02160a64(unk32, unk32);
};
extern UnkClass_027e0e28 data_027e0e28;
diff --git a/src/14_Land/Actor/Character/ActorCharacter.cpp b/src/14_Land/Actor/Character/ActorCharacter.cpp
index 1b679778..d3755391 100644
--- a/src/14_Land/Actor/Character/ActorCharacter.cpp
+++ b/src/14_Land/Actor/Character/ActorCharacter.cpp
@@ -102,7 +102,7 @@ ARM void ActorCharacter::func_ov014_02145178() {
func_ov005_021082e4(data_027e0ff8, &mRef, &mPos, &mPrevPos, &unk, mUnk_448, -1);
}
-ARM void ActorCharacter::func_ov014_021451f0(unk32 *param1) {
+ARM void ActorCharacter::func_ov014_021451f0(const unk32 *param1) {
unk32 iVar1 = param1[0];
mHitbox.pos.x = 0;
mHitbox.pos.y = iVar1;
@@ -373,7 +373,7 @@ ARM void ActorCharacter::vfunc_ec(unk32 param1) {
}
}
-ARM void ActorCharacter::vfunc_f0(unk32 param1, unk32 param2) {
+ARM void ActorCharacter::vfunc_f0(bool param1, unk32 param2) {
mUnk_1d8.func_ov014_02145f0c(param1 ? 2 : 0);
}
diff --git a/src/14_Land/Actor/Character/ActorGenericCharacter.cpp b/src/14_Land/Actor/Character/ActorGenericCharacter.cpp
index a378ed48..98498916 100644
--- a/src/14_Land/Actor/Character/ActorGenericCharacter.cpp
+++ b/src/14_Land/Actor/Character/ActorGenericCharacter.cpp
@@ -4,7 +4,7 @@
ActorGenericCharacter::ActorGenericCharacter() {}
bool ActorGenericCharacter::Init() {}
-void ActorGenericCharacter::vfunc_68() {}
+void ActorGenericCharacter::vfunc_68(unk32 param1, UnkStruct_020397f8 *param2) {}
bool ActorGenericCharacter::vfunc_c0() {}
void ActorGenericCharacter::vfunc_c4() {}
void ActorGenericCharacter::func_ov014_02147940() {}
diff --git a/src/31_Shop/Actor/ActorBeedle.cpp b/src/31_Shop/Actor/ActorBeedle.cpp
index 9a31a491..d74dbbbc 100644
--- a/src/31_Shop/Actor/ActorBeedle.cpp
+++ b/src/31_Shop/Actor/ActorBeedle.cpp
@@ -9,23 +9,23 @@ unk32 ActorBeedle::vfunc_d4() {}
static unk32 func_ov031_02180e44(unk32 param1, unk32 param2) {}
-void ActorBeedle::vfunc_f4() {}
-void ActorBeedle::vfunc_f8() {}
-void ActorBeedle::vfunc_fc() {}
-void ActorBeedle::vfunc_100() {}
-void ActorBeedle::vfunc_104() {}
+unk32 ActorBeedle::GetPromptMessage() {}
+unk32 ActorBeedle::GetPurchaseMessage() {}
+unk32 ActorBeedle::GetNotEnoughMoneyMessage() {}
+unk32 ActorBeedle::GetGoodbyeMessage() {}
+unk32 ActorBeedle::GetInventoryFullMessage() {}
unk32 ActorBeedle::vfunc_d8(unk32 param1) {}
unk32 ActorBeedle::vfunc_dc(unk32 param1) {}
unk32 ActorBeedle::vfunc_e0(unk32 param1) {}
bool ActorBeedle::vfunc_70() {}
bool ActorBeedle::vfunc_6c() {}
void ActorBeedle::vfunc_108() {}
-void ActorBeedle::vfunc_10c() {}
+void ActorBeedle::vfunc_10c(bool param1) {}
void ActorBeedle::vfunc_110() {}
unk32 ActorBeedle::func_ov031_021812e4(unk32 param1) {}
void ActorBeedle::func_ov031_0218132c(unk32 param1) {}
bool ActorBeedle::vfunc_11c() {}
-void ActorBeedle::vfunc_118() {}
+bool ActorBeedle::vfunc_118() {}
ActorBeedle::~ActorBeedle() {}
diff --git a/src/31_Shop/Actor/ActorItemSeller.cpp b/src/31_Shop/Actor/ActorItemSeller.cpp
index fd1f9a4d..16fc017c 100644
--- a/src/31_Shop/Actor/ActorItemSeller.cpp
+++ b/src/31_Shop/Actor/ActorItemSeller.cpp
@@ -1,21 +1,138 @@
#include "Actor/Character/ActorItemSeller.hpp"
+#include "Actor/ActorType.hpp"
+#include "Actor/ActorTypeId.hpp"
+#include "Item/ItemManager.hpp"
+#include "Message/BMG.hpp"
+#include "Message/MsgProc.hpp"
+#include "Save/AdventureFlags.hpp"
+#include "Unknown/UnkStruct_ov000_020e8b08.hpp"
-ActorItemSeller *ActorItemSeller1::Create() {}
-ActorItemSeller *ActorItemSeller2::Create() {}
-ActorItemSeller *ActorItemSeller3::Create() {}
-
-bool ActorItemSeller::Init() {}
-unk32 ActorItemSeller::vfunc_114(unk32 param1) {}
-void ActorItemSeller::vfunc_f4() {}
-void ActorItemSeller::vfunc_f8() {}
-void ActorItemSeller::vfunc_fc() {}
-void ActorItemSeller::vfunc_100() {}
-void ActorItemSeller::vfunc_104() {}
-void ActorItemSeller::vfunc_118() {}
-
-unk32 ActorItemSeller::vfunc_d4() {}
-
-void ActorItemSeller::vfunc_108() {}
-void ActorItemSeller::vfunc_10c() {}
-void ActorItemSeller::vfunc_110() {}
-ActorItemSeller::~ActorItemSeller() {}
+extern u32 **data_027e0fe0[];
+ARM ActorItemSeller *ActorItemSeller1::Create() {
+ return new(*data_027e0fe0[0], 4) ActorItemSeller();
+}
+
+ARM ActorItemSeller *ActorItemSeller2::Create() {
+ return new(*data_027e0fe0[0], 4) ActorItemSeller();
+}
+
+ARM ActorItemSeller *ActorItemSeller3::Create() {
+ return new(*data_027e0fe0[0], 4) ActorItemSeller();
+}
+
+static const char *sShipTypes[8] = {
+ [7] = "brg", [6] = "fnl", [5] = "pdl", [4] = "dco", [3] = "can", [2] = "hul", [1] = "bow", [0] = "anc"};
+
+ActorType ActorItemSeller1::gType = ActorType(ActorTypeId_ItemSeller1, (ActorCreateFunc) ActorItemSeller1::Create, NULL);
+ActorType ActorItemSeller2::gType = ActorType(ActorTypeId_ItemSeller2, (ActorCreateFunc) ActorItemSeller2::Create, NULL);
+ActorType ActorItemSeller3::gType = ActorType(ActorTypeId_ItemSeller3, (ActorCreateFunc) ActorItemSeller3::Create, NULL);
+
+ARM bool ActorItemSeller::Init() {
+ unk32 unk;
+ switch (mType) {
+ case ActorTypeId_ItemSeller2:
+ unk = 0x3d;
+ break;
+ case ActorTypeId_ItemSeller3:
+ unk = 0x3e;
+ break;
+ case ActorTypeId_ItemSeller1:
+ default:
+ unk = 0x3c;
+ break;
+ }
+ mUnk_1d8.func_ov014_02145a74(unk, 0x3f);
+ static const unk32 sUnk1[] = {0x800, 0x4cd, 0x14cd};
+ static const ActorCharacter_1d8_230 sUnk2[] = {{"choice", 0}, {"bow", 1}};
+ mUnk_1d8.mUnk_230 = sUnk2;
+ this->func_ov014_021451f0(sUnk1);
+ mUnk_470 = 2;
+ return ActorItemSellerBase::Init();
+}
+
+ARM unk32 ActorItemSeller::vfunc_114(unk32 param1) {
+ u16 uVar1;
+ int iVar2;
+ unk32 uVar3;
+
+ uVar1 = mUnk_020.mUnk_00[0];
+ switch (param1) {
+ case 0:
+ return uVar1 == 2 ? 0x4 : 0x2;
+ case 1:
+ return uVar1 == 0 ? 0xa : 0x3;
+ case 2:
+ return uVar1 == 2 ? 0x11 : 0xf;
+ case 3:
+ if (!gAdventureFlags->Get(AdventureFlag_Unk_105)) {
+ return 0xc;
+ }
+ if (!gAdventureFlags->Get(AdventureFlag_Unk_107)) {
+ return 0x7;
+ }
+ if (!gAdventureFlags->Get(AdventureFlag_Unk_108)) {
+ return 0x8;
+ }
+ if (!gAdventureFlags->Get(AdventureFlag_Unk_103)) {
+ return 0x5;
+ }
+ return uVar1 == 2 ? 0xa : 0x1;
+ case 4:
+ if (gItemManager->HasItem(ItemFlag_WoodenShield)) {
+ return 0x10;
+ }
+ return 0xe;
+ default:
+ return 0x1;
+ }
+}
+
+ARM unk32 ActorItemSeller::GetPromptMessage() {
+ return BMG_ID(BMG_FILE_INDEX_FIELD, 0x41);
+}
+
+ARM unk32 ActorItemSeller::GetPurchaseMessage() {
+ return BMG_ID(BMG_FILE_INDEX_FIELD, 0x50);
+}
+
+ARM unk32 ActorItemSeller::GetNotEnoughMoneyMessage() {
+ return BMG_ID(BMG_FILE_INDEX_FIELD, 0x52);
+}
+
+ARM unk32 ActorItemSeller::GetGoodbyeMessage() {
+ return BMG_ID(BMG_FILE_INDEX_FIELD, 0x51);
+}
+
+ARM unk32 ActorItemSeller::GetInventoryFullMessage() {
+ return BMG_ID(BMG_FILE_INDEX_FIELD, 0x56);
+}
+
+ARM bool ActorItemSeller::vfunc_118() {
+ return data_027e0e28.func_ov018_02160a54(2);
+}
+
+ARM unk32 ActorItemSeller::vfunc_d4() {
+ return ActorItemSellerBase::vfunc_d4();
+}
+
+ARM void ActorItemSeller::vfunc_108() {
+ this->vfunc_ec(3);
+}
+
+ARM void ActorItemSeller::vfunc_10c(bool param1) {
+ if (param1) {
+ mUnk_1d8.func_ov014_02145f0c(4);
+ return;
+ }
+ this->vfunc_ec(4);
+}
+
+ARM void ActorItemSeller::vfunc_110() {
+ bool unk;
+ if (data_ov000_020e8b08 != NULL) {
+ unk = mRef.id == data_ov000_020e8b08->mUnk_20[data_ov000_020e8b08->mUnk_55].id;
+ } else {
+ unk = true;
+ }
+ this->vfunc_f0(unk, 0);
+}