Merge branch 'master' into sub_0807CA18

This commit is contained in:
Ibot02
2021-10-25 13:35:56 +02:00
390 changed files with 14082 additions and 27769 deletions
+4 -4
View File
@@ -95,12 +95,12 @@ typedef enum {
/*0x57*/ MINI_SLIME,
/*0x58*/ FIREBALL_GUY,
/*0x59*/ MINI_FIREBALL_GUY,
/*0x5a*/ ENEMY_5A,
/*0x5a*/ VAATI_TRANSFIGURED_EYE,
/*0x5b*/ BUSINESS_SCRUB_PROLOGUE,
/*0x5c*/ GYORG_FEMALE,
/*0x5d*/ GYORG_MALE,
/*0x5e*/ CURTAIN,
/*0x5f*/ ENEMY_5F,
/*0x5f*/ VAATI_WRATH_EYE,
/*0x60*/ GYORG_CHILD,
/*0x61*/ GYORG_FEMALE_EYE,
/*0x62*/ ENEMY_62,
@@ -199,12 +199,12 @@ extern void Slime(Entity*);
extern void MiniSlime(Entity*);
extern void FireballGuy(Entity*);
extern void MiniFireballGuy(Entity*);
extern void Enemy5A(Entity*);
extern void VaatiTransfiguredEye(Entity*);
extern void BusinessScrubPrologue(Entity*);
extern void GyorgFemale(Entity*);
extern void GyorgMale(Entity*);
extern void Curtain(Entity*);
extern void Enemy5F(Entity*);
extern void VaatiWrathEye(Entity*);
extern void GyorgChild(Entity*);
extern void GyorgFemaleEye(Entity*);
extern void Enemy62(Entity*);
+2
View File
@@ -265,4 +265,6 @@ Entity* FindNextDuplicateID(Entity* ent, int listIndex);
*/
Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2);
void DeleteEntityAny(Entity* ent);
#endif
+2 -2
View File
@@ -28,7 +28,7 @@ void SetRoomFlag(u32);
extern u32 gGlobalFlags;
extern u32 gRoomFlags;
enum {
typedef enum {
FLAG_NONE,
/*0x01*/ LV0_CLEAR, /* */
/*0x02*/ LV1_CLEAR, /* */
@@ -130,6 +130,6 @@ enum {
/*0x62*/ MAZE_CLEAR, /* Cleared Castle maze */
/*0x63*/ TINY_ENTRANCE, /* Ezlo described entrances */
/*0x64*/ CASTLE_BGM, /* Castle intro BGM */
};
} Flag;
#endif
+29 -11
View File
@@ -9,6 +9,7 @@
#include "player.h"
#include "room.h"
#include "structures.h"
#include "script.h"
// Identified - to be sorted into header files
extern void ShowNPCDialogue(Entity*, Dialog*);
@@ -42,7 +43,21 @@ extern void ResetPlayer(void);
extern u32 IsItemEquipped(u32);
extern void DeleteManager(Manager*);
extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY);
extern Entity* CreateProjectileWithParent(Entity*, u8, u8);
extern u32 GetBottleContaining(u32);
extern u32 GetTileTypeByEntity(Entity*);
extern u32 GetSaleItemConfirmMessageID(u32);
extern void FlushSprites(void);
extern void DispReset(u32);
extern void InitSoundPlayingInfo(void);
extern void InitDMA(void);
extern Entity* CreateProjectile(u32);
extern void RegisterPlayerHitbox();
extern s32 GetItemPrice();
extern void DoExitTransition(ScreenTransitionData*);
extern void CreateDustAt(u32, u32, u32);
extern void PutItemOnSlot(u32 itemID);
extern void CreateSpeechBubbleSleep(Entity*, u32, u32);
// Unidentified
extern u32 sub_0806ED78(Entity*);
@@ -80,8 +95,6 @@ extern u32 sub_08049FA0(Entity*);
extern u32 sub_08049FDC(Entity*, u32);
extern u32 sub_080041A0(Entity*, Entity*, u32, u32);
extern u32 sub_08049EE4(Entity*);
extern Entity* sub_0804A98C(Entity*, u8, u8);
extern u32 GetBottleContaining(u32);
extern void sub_08077E54(ItemBehavior*);
extern void sub_080042BA(Entity*, u32);
extern bool32 sub_08077F24(ItemBehavior*, u32);
@@ -92,7 +105,6 @@ extern s32 sub_0807887C(Entity*, u32, u32);
extern s32 sub_08078904();
extern void sub_0805E5A8(void);
extern void sub_0805E5C0(void);
extern void FlushSprites(void);
extern void sub_080AD9B0(void);
extern void sub_080AD918(void);
extern void sub_0801E104(void);
@@ -118,7 +130,6 @@ extern u32 sub_08060354(void);
extern void sub_08057E64(void);
extern void sub_0809F814(u32);
extern void sub_080300E8(void);
extern void DispReset(u32);
extern void sub_08058D34(void);
extern void sub_0807AABC(Entity*);
extern void sub_08078A90(u32);
@@ -142,7 +153,6 @@ extern void sub_080AF2E4(void);
extern void sub_0804F578(void);
extern void sub_08059994(void);
extern s32 sub_0801CFA8(u32);
extern void InitSoundPlayingInfo(void);
extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4
extern void sub_0801E1B8(u32, u32);
extern void sub_0801E1EC(s32, s32, s32);
@@ -171,7 +181,6 @@ extern void sub_0807A108(void);
extern u32 sub_0801766C(Entity*);
extern void sub_08004168(Entity*);
extern u32 sub_08052638(u32);
extern void InitDMA(void);
extern void sub_08056208(void);
extern void sub_08050384();
extern u32 sub_0806F520();
@@ -181,7 +190,6 @@ extern void sub_0804A7D4(Entity*);
extern void sub_08033744(Entity*);
extern void sub_0800417E(Entity*, u32);
extern void sub_080784C8();
extern void RegisterPlayerHitbox();
extern u32 sub_0808288C(Entity*, u32, u32, u32);
extern void sub_0806FDA0(Entity*);
extern void sub_080AE008(Entity*, u32, u32);
@@ -206,7 +214,7 @@ extern void sub_0802F45C(Entity*);
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
extern void sub_08004542(Entity*);
extern void sub_08077B20();
extern u32 sub_080040A8(Entity*);
extern bool32 sub_080040A8(Entity*);
extern u32 sub_08017850(Entity*);
extern void sub_080809D4(void);
extern void sub_08080CB4(Entity*);
@@ -227,7 +235,6 @@ extern u32 sub_0805F7A0(u32);
extern u32* sub_0805F25C(u32);
extern u32 sub_080045DA(s32, s32);
u32 sub_0806FCB8(Entity*, u32, u32, u32);
extern Entity* sub_080A7EE0(u32);
extern void sub_080A1D70(Entity*, u32);
extern void sub_0806F62C(Entity*, u32, u32);
extern void sub_080A1ED0(u32, u32, u32);
@@ -241,7 +248,6 @@ extern u32 sub_08052734(); // has Dungeon Map?
extern u32 sub_08052764(); // has Dungeon Compass?
extern u32 sub_0805279C(); // has Dungeon Big Key?
extern u32 sub_080527CC(); // num Dungeon small keys?
extern u32 GetItemPrice();
extern void sub_08078790(Entity*, u32);
extern void sub_080788E0(Entity*);
extern void sub_08078AA8(u32, u32);
@@ -267,6 +273,15 @@ extern void sub_0805EEB4(u8*, u32);
extern void sub_08056BDC(u32);
extern void sub_08056F88(u32, u32);
extern void sub_0805F8E4(u32 r0, WStruct* r1);
extern u32 sub_08002632(Entity*);
extern void sub_0807879C(Entity*);
extern void sub_080787C0(Entity*);
extern void sub_080787B4(Entity*);
extern void sub_0808C650(Entity*, u32);
extern u32 sub_0808C67C(void);
extern void sub_0808C688(void);
extern void sub_0805E4A0(Entity*);
extern void sub_0805E4CC(Entity*);
extern Entity* sub_08077C94(ItemBehavior*, u32);
extern Entity* sub_08077C0C(ItemBehavior*, u32);
@@ -282,10 +297,13 @@ extern void sub_08078E84(Entity*, Entity*);
extern void sub_080042D0(Entity*, u32, u16);
extern u32 sub_080002A8(u32, u32, u32);
extern void CreateDustAt(u32, u32, u32);
extern void sub_080806BC(u32, u32, u32, u32);
extern void sub_080186C0(u32);
extern void sub_0801855C(void);
extern u32 sub_0807CAEC(u32);
extern void sub_0807CAC8(u32);
extern void sub_0805E4E0(Entity*, u32);
#endif
+63 -54
View File
@@ -112,6 +112,15 @@ typedef struct {
u16 unk_3e;
} ManagerF;
typedef struct {
Manager manager;
u8 unk_20;
u8 unk_21;
u8 unk_22;
u8 unk_23;
u8 filler_0x24[0x1C];
} Manager10;
typedef struct Manager11 {
Manager manager;
u8 unk_20[0x1C];
@@ -149,63 +158,63 @@ typedef struct {
u16 unk_06;
} UnkManager26HelperStruct;
extern void Manager1();
extern void Manager2();
extern void sub_080576C0();
extern void sub_08057854();
extern void sub_08057AD0();
extern void sub_08057CB4();
extern void Manager1_Main();
extern void Manager2_Main();
extern void Manager3_Main();
extern void Manager4_Main();
extern void Manager5_Main();
extern void Manager6_Main();
extern void Manager7_Main();
extern void sub_08057ED0();
extern void sub_080581D8();
extern void sub_08058380();
extern void sub_080585F0();
extern void sub_0805884C();
extern void sub_08058DD0(Entity*);
extern void sub_08058E60();
extern void Manager8_Main();
extern void Manager9_Main();
extern void ManagerA_Main();
extern void ManagerB_Main();
extern void ManagerC_Main();
extern void ManagerD_Main();
extern void ManagerE_Main();
extern void sub_08058ECC(ManagerF*);
extern void sub_08059570(Entity*);
extern void sub_080599B8(Manager11*);
extern void sub_080599EC(Entity*);
extern void sub_08059DAC(Entity*);
extern void sub_08059E58(Entity*);
extern void sub_0805A280();
extern void sub_0805AB4C(Entity*);
extern void sub_0805AD48(Entity*);
extern void sub_0805ADD8();
extern void sub_0805AF60(Entity*);
extern void sub_0805B030();
extern void sub_0805B3B4(Entity*);
extern void sub_0805B53C(Entity*);
extern void sub_0805B5C8(Entity*);
extern void Manager1E_Handler();
extern void sub_0805B6F4(Entity*);
extern void sub_0805B7A0();
extern void sub_0805B820(Entity*);
extern void sub_0805B8EC(Entity*);
extern void sub_0805BC74(Entity*);
extern void sub_0805BF18(Entity*);
extern void sub_0805C61C(Entity*);
extern void sub_0805C6B8();
extern void Manager27();
extern void Manager28_Entry();
extern void sub_0805CB90(Entity*);
extern void sub_0805CFC0(Entity*);
extern void sub_0805D014(Entity*);
extern void sub_0805D174(Entity*);
extern void sub_0805D1FC(Entity*);
extern void sub_0805D250();
extern void sub_0805D3C8();
extern void Manager10_Main(Manager10*);
extern void Manager11_Main(Manager11*);
extern void Manager12_Main();
extern void Manager13_Main();
extern void Manager14_Main();
extern void Manager15_Main();
extern void Manager16_Main();
extern void Manager17_Main();
extern void Manager18_Main();
extern void Manager19_Main();
extern void Manager1A_Main();
extern void Manager1B_Main();
extern void Manager1C_Main(Manager*);
extern void Manager1D_Main();
extern void Manager1E_Main();
extern void Manager1F_Main();
extern void Manager20_Main();
extern void Manager21_Main();
extern void Manager22_Main();
extern void Manager23_Main();
extern void Manager24_Main();
extern void Manager25_Main();
extern void Manager26_Main();
extern void Manager27_Main();
extern void Manager28_Main();
extern void Manager29_Main();
extern void Manager2A_Main(Manager*);
extern void Manager2B_Main();
extern void Manager2C_Main();
extern void Manager2D_Main(Entity*);
extern void Manager2E_Main();
extern void Manager2F_Main();
extern void Manager30_Main();
extern void sub_0805D630(Entity*);
extern void sub_0805D7A4(Entity*);
extern void sub_0805DAE8(Entity*);
extern void sub_0805DB94(Entity*);
extern void sub_0805DC84(Entity*);
extern void sub_0805DDB4(Entity*);
extern void sub_0805DE38(Entity*);
extern void sub_0805E0A8(Entity*);
extern void sub_0805E0FC();
extern void Manager31_Main();
extern void Manager32_Main();
extern void Manager33_Main();
extern void Manager34_Main();
extern void Manager35_Main();
extern void Manager36_Main(Manager*);
extern void Manager37_Main();
extern void Manager38_Main(Entity*);
extern void Manager39_Main();
extern void (*const gManagerFunctions[58])();
+131
View File
@@ -5,6 +5,137 @@
#ifndef NPC_H
#define NPC_H
enum NPC {
/*0x00*/ NPC_NONE_0,
/*0x01*/ GENTARI,
/*0x02*/ FESTARI,
/*0x03*/ FOREST_MINISH,
/*0x04*/ POSTMAN,
/*0x05*/ NPC_UNK_5,
/*0x06*/ TPWNSPERSON,
/*0x07*/ KID,
/*0x08*/ GUARD,
/*0x09*/ NPC_UNK_9,
/*0x0a*/ STAMP,
/*0x0b*/ MAID,
/*0x0c*/ MARCY,
/*0x0d*/ WHEATON,
/*0x0e*/ PITA,
/*0x0f*/ MINISH_EZLO,
/*0x10*/ MAILBOX,
/*0x11*/ BEEDLE,
/*0x12*/ BROCCO,
/*0x13*/ SITTING_PERSON,
/*0x14*/ PINA,
/*0x15*/ GUARD_1,
/*0x16*/ MAID_1,
/*0x17*/ DIN,
/*0x18*/ NAYRU,
/*0x19*/ FARORE,
/*0x1a*/ STURGEON,
/*0x1b*/ TINGLE_SIBLINGS,
/*0x1c*/ STOCKWELL,
/*0x1d*/ TALON,
/*0x1e*/ MALON,
/*0x1f*/ EPONA,
/*0x20*/ MILK_CART,
/*0x21*/ GHOST_BROTHERS,
/*0x22*/ SMITH,
/*0x23*/ NPC_UNK_23,
/*0x24*/ KING_DALTUS,
/*0x25*/ MINISTER_POTHO,
/*0x26*/ NPC_UNK_26,
/*0x27*/ VAATI,
/*0x28*/ ZELDA,
/*0x29*/ MUTOH,
/*0x2a*/ CARPENTER,
/*0x2b*/ CASTOR_WILDS_STATUE,
/*0x2c*/ CAT,
/*0x2d*/ MOUNTAIN_MINISH,
/*0x2e*/ ZELDA_FOLLOWER,
/*0x2f*/ MELARI,
/*0x30*/ BLADE_BROTHERS,
/*0x31*/ COW,
/*0x32*/ GORON,
/*0x33*/ GORON_MERCHANT,
/*0x34*/ GORMAN,
/*0x35*/ DOG,
/*0x36*/ SYRUP,
/*0x37*/ REM,
/*0x38*/ TOWN_MINISH,
/*0x39*/ LIBRARI,
/*0x3a*/ PERCY,
/*0x3b*/ VAATI_REBORN,
/*0x3c*/ MOBLIN_LADY,
/*0x3d*/ LIBRARIANS,
/*0x3e*/ FARMERS,
/*0x3f*/ CARLOV,
/*0x40*/ DAMPE,
/*0x41*/ DR_LEFT,
/*0x42*/ KING_GUSTAF,
/*0x43*/ GINA,
/*0x44*/ SIMON,
/*0x45*/ ANJU,
/*0x46*/ MAMA,
/*0x47*/ EMMA,
/*0x48*/ TEACHERS,
/*0x49*/ WIND_TRIBESPEOPLE,
/*0x4a*/ GREGAL,
/*0x4b*/ MAYOR_HAGEN,
/*0x4c*/ BIG_GORON,
/*0x4d*/ EZLO_CAP,
/*0x4e*/ NPC_UNK_4E,
/*0x4f*/ NPC_UNK_4F,
/*0x50*/ CLOTHES_RACK,
/*0x51*/ PICOLYTE_BOTTLE,
/*0x52*/ SMALL_TOWN_MINISH,
/*0x53*/ HURDY_GURDY_MAN,
/*0x54*/ CUCCO,
/*0x55*/ CUCCO_CHICK,
/*0x56*/ FUSION_MENU_NPC,
/*0x57*/ PHONOGRAPH,
/*0x58*/ NPC_UNK_58,
/*0x59*/ NPC_NONE_1,
/*0x5a*/ NPC_NONE_2,
/*0x5b*/ NPC_NONE_3,
/*0x5c*/ NPC_NONE_4,
/*0x5d*/ NPC_NONE_5,
/*0x5e*/ NPC_NONE_6,
/*0x5f*/ NPC_NONE_7,
/*0x60*/ NPC_NONE_8,
/*0x61*/ NPC_NONE_9,
/*0x62*/ NPC_NONE_10,
/*0x63*/ NPC_NONE_11,
/*0x64*/ NPC_NONE_12,
/*0x65*/ NPC_NONE_13,
/*0x66*/ NPC_NONE_14,
/*0x67*/ NPC_NONE_15,
/*0x68*/ NPC_NONE_16,
/*0x69*/ NPC_NONE_17,
/*0x6a*/ NPC_NONE_18,
/*0x6b*/ NPC_NONE_19,
/*0x6c*/ NPC_NONE_20,
/*0x6d*/ NPC_NONE_21,
/*0x6e*/ NPC_NONE_22,
/*0x6f*/ NPC_NONE_23,
/*0x70*/ NPC_NONE_24,
/*0x71*/ NPC_NONE_25,
/*0x72*/ NPC_NONE_26,
/*0x73*/ NPC_NONE_27,
/*0x74*/ NPC_NONE_28,
/*0x75*/ NPC_NONE_29,
/*0x76*/ NPC_NONE_30,
/*0x77*/ NPC_NONE_31,
/*0x78*/ NPC_NONE_32,
/*0x79*/ NPC_NONE_33,
/*0x7a*/ NPC_NONE_34,
/*0x7b*/ NPC_NONE_35,
/*0x7c*/ NPC_NONE_36,
/*0x7d*/ NPC_NONE_37,
/*0x7e*/ NPC_NONE_38,
/*0x7f*/ NPC_NONE_39,
};
extern void Gentari(Entity*);
extern void Gentari_Fusion(Entity*);
extern void Festari(Entity*);
+1 -2
View File
@@ -52,8 +52,7 @@ typedef struct {
u8 filler2;
u16 field_0xc;
u8 filler3[2];
u8 unk_10;
u8 filler6[3];
u8 unk_10[4];
u32 roomFlags;
u32 unk3;
u8 filler4[48];
+2 -1
View File
@@ -50,7 +50,8 @@ typedef struct {
/*0x141*/ u8 unk141[0x34f];
/*0x490*/ u32 unk490;
/*0x494*/ u32 unk494;
/*0x498*/ u8 filler498[0x10];
/*0x498*/ u32 unk498;
/*0x49C*/ u8 filler49C[0xC];
/*0x4a8*/ u32 unk_4a8;
/*0x4ac*/ u8 filler4ac[0x8];
} SaveFile;
+1
View File
@@ -36,6 +36,7 @@ void sub_0807DEDC(Entity*, ScriptExecutionContext*, u32, u32);
ScriptExecutionContext* StartCutscene(Entity* entity, u16* script);
void ExecuteScriptForEntity(Entity* entity, void (*postScriptCallback)(Entity*, ScriptExecutionContext*));
void HandlePostScriptActions(Entity* entity, ScriptExecutionContext* context);
void HandleEntity0x82Actions(Entity* entity);
void sub_0807DD94(Entity*, void (*function)(Entity*, ScriptExecutionContext*));
#endif
+10 -3
View File
@@ -39,7 +39,7 @@ extern struct_02000010 gUnk_02000010;
typedef struct {
s32 frameCount; // regular frame count? does anything reset it?
u8 field_0x4[0x2];
u16 field_0x8;
u16 field_0x6;
bool8 transitioningOut;
u8 transitionType; // transition when changing areas
u16 field_0xa; // seems to be a tile type
@@ -56,9 +56,13 @@ typedef struct {
u8 field_0x24[0x14];
u8 field_0x38;
u8 field_0x39;
u16 field_0x3a;
u8 field_0x3a;
u8 field_0x3b;
u8 field_0x3c;
u8 filler[6];
u8 field_0x3d;
u16 field_0x3e;
u16 field_0x40;
u16 field_0x42;
u16 field_0x44;
u16 field_0x46;
u16 field_0x48;
@@ -169,6 +173,9 @@ typedef struct {
u8 unk3;
u8 freezeTime;
u8 unk9;
u8 unk_0xa;
u8 unk_0xb;
u16 unk_0xc;
} EntityHandler;
extern EntityHandler gUnk_03003DC0;
+2
View File
@@ -40,6 +40,8 @@ void ReadKeyInput(void);
void LoadPalettes(const u8*, int, int);
void LoadPaletteGroup(u32 group);
void sub_0801D79C(u32 colorIndex, u32 color);
void sub_0801D7BC(u32 color, u32 arg1);
/**
* Allocate memory on heap.