summaryrefslogtreecommitdiff
path: root/include/Actor
diff options
context:
space:
mode:
authorYanis42 <35189056+Yanis42@users.noreply.github.com>2024-04-21 12:23:57 +0200
committerYanis42 <35189056+Yanis42@users.noreply.github.com>2024-04-21 12:23:57 +0200
commitcfbffe5ec1192ba9b9e031995f863f615eb2a98b (patch)
treec42dec9fdeb6ab944399503c032d312188cc4cc3 /include/Actor
parent5da4496e3dc521a7d3f9e831a7ce9c4b1e37c1f6 (diff)
parent72a752995e764c022c8e5fb42ac9ebb6c029d817 (diff)
Merge remote-tracking branch 'upstream/main' into match_actor_rupee
Diffstat (limited to 'include/Actor')
-rw-r--r--include/Actor/ActorType.hpp77
1 files changed, 75 insertions, 2 deletions
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index b004a044..29031faf 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -5,13 +5,86 @@
#include "Actor/Actor.hpp"
+#define __ACTOR_TYPE_ID(a,b,c,d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
+
+typedef u32 ActorTypeId;
+enum ActorTypeId_ {
+ ActorTypeId_Navi = __ACTOR_TYPE_ID('N','A','V','I'),
+ ActorTypeId_ForceNavi = __ACTOR_TYPE_ID('F','C','N','V'),
+ ActorTypeId_WisdomNavi = __ACTOR_TYPE_ID('W','S','N','V'),
+
+ ActorTypeId_TreasureMap = __ACTOR_TYPE_ID('T','M','A','P'),
+ ActorTypeId_DigSpot = __ACTOR_TYPE_ID('D','G','T','G'),
+
+ ActorTypeId_ShopItemBombchus = __ACTOR_TYPE_ID('I','T','B','T'),
+ ActorTypeId_ShopItemBombs = __ACTOR_TYPE_ID('I','T','B','M'),
+ ActorTypeId_ShopItemTreasure = __ACTOR_TYPE_ID('I','T','T','R'),
+ ActorTypeId_ShopItemHeartContainer = __ACTOR_TYPE_ID('I','T','H','U'),
+ ActorTypeId_ShopItemQuiver = __ACTOR_TYPE_ID('I','T','A','P'),
+ ActorTypeId_ShopItemBombBag = __ACTOR_TYPE_ID('I','T','B','B'),
+ ActorTypeId_ShopItemRedPotion = __ACTOR_TYPE_ID('I','T','P','B'),
+ ActorTypeId_ShopItemCourageGem = __ACTOR_TYPE_ID('I','T','S','R'),
+ ActorTypeId_ShopItemShield = __ACTOR_TYPE_ID('I','T','S','L'),
+ ActorTypeId_ShopItemSoldOut = __ACTOR_TYPE_ID('I','T','S','O'),
+
+ ActorTypeId_Heart = __ACTOR_TYPE_ID('H','A','R','T'),
+ ActorTypeId_Rupee = __ACTOR_TYPE_ID('R','U','P','Y'),
+
+ ActorTypeId_Bomb = __ACTOR_TYPE_ID('B','O','M','B'),
+ ActorTypeId_Arrow = __ACTOR_TYPE_ID('A','R','R','W'),
+
+ ActorTypeId_PlayerDummy = __ACTOR_TYPE_ID('P','L','D','M'),
+ ActorTypeId_PushBlock = __ACTOR_TYPE_ID('P','S','B','L'),
+ ActorTypeId_WindBlock = __ACTOR_TYPE_ID('W','B','L','K'),
+ ActorTypeId_StorageDrum = __ACTOR_TYPE_ID('D','R','U','M'),
+
+ ActorTypeId_SmallKey = __ACTOR_TYPE_ID('N','K','E','Y'),
+
+ ActorTypeId_Sandworm = __ACTOR_TYPE_ID('M','L','D','W'),
+ ActorTypeId_Tektite = __ACTOR_TYPE_ID('T','E','K','T'),
+ ActorTypeId_PolsVoice = __ACTOR_TYPE_ID('P','L','S','V'),
+ ActorTypeId_Yook = __ACTOR_TYPE_ID('Y','E','T','I'),
+ ActorTypeId_Armos = __ACTOR_TYPE_ID('A','M','O','S'),
+ ActorTypeId_Stalfos = __ACTOR_TYPE_ID('S','T','L','F'),
+ ActorTypeId_StalfosWarrior = __ACTOR_TYPE_ID('S','T','L','W'),
+ ActorTypeId_ChuChu = __ACTOR_TYPE_ID('C','H','U','C'),
+ ActorTypeId_Gel = __ACTOR_TYPE_ID('G','E','L','L'),
+ ActorTypeId_Bee = __ACTOR_TYPE_ID('B','E','E','0'),
+ ActorTypeId_BeeHive = __ACTOR_TYPE_ID('B','E','E','H'),
+ ActorTypeId_Cucco = __ACTOR_TYPE_ID('K','O','K','O'),
+ ActorTypeId_Rope = __ACTOR_TYPE_ID('S','N','A','K'),
+ ActorTypeId_Octorok = __ACTOR_TYPE_ID('O','C','T','A'),
+ ActorTypeId_Keese = __ACTOR_TYPE_ID('K','E','T','H'),
+ ActorTypeId_Rat = __ACTOR_TYPE_ID('R','A','T','0'),
+ ActorTypeId_Beamos = __ACTOR_TYPE_ID('B','M','O','S'),
+ ActorTypeId_LikeLike = __ACTOR_TYPE_ID('L','K','L','K'),
+ ActorTypeId_Crow = __ACTOR_TYPE_ID('C','R','O','W'),
+
+ ActorTypeId_Linebeck = __ACTOR_TYPE_ID('L','N','B','K'),
+ ActorTypeId_Mailbox = __ACTOR_TYPE_ID('P','O','S','T'),
+ ActorTypeId_Postman = __ACTOR_TYPE_ID('P','S','T','M'),
+};
+
typedef Actor* (*ActorCreateFunc)();
struct ActorType {
- /* 00 */ char type[4];
+ /* 00 */ ActorTypeId id;
/* 04 */ ActorCreateFunc create;
- /* 08 */ unk32 unk_08;
+ /* 08 */ void *unk_08;
/* 0c */ unk32 unk_0c;
/* 10 */ ActorType *next;
/* 14 */
+
+ ActorType(ActorTypeId id, ActorCreateFunc create, void *unk_08);
+ ~ActorType();
+ void func_0203e7c8();
+ void Register();
+ void Unregister();
+ static ActorType* Find(ActorTypeId id);
+};
+
+struct ActorTypeList {
+ /* 0 */ ActorType *head;
+ /* 4 */ ActorType *tail;
+ /* 8 */
};