mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-04 06:54:33 +00:00
Decompiled ovl_Shot_Sun (#236)
* match ShotSun_Init * match ShotSun_Destroy * match func_80BADDCC * break up unk_19C to add spawnTimer * ShotSun_Update * func_80BADE74 * work on func_80BAE05C * make func_80BAE05C closer * use proper macros for osSyncPrintf * format if statement better and add temp player pointer func_80BAE05C * Reorder spawnPos to match stack args later * match func_80BAE05C * almost match func_80BADF0C * Remove temporary and add parenthesis * change part of comment and move last unk_1A4 assignment to be similar to decompiler * Change do while(false) to if (1) * func_80BADF0C * change comment * update spec * fix vt macro * cleanup and name * remove asm * remove data * remove extern Co-authored-by: Random <28494085+Random06457@users.noreply.github.com> * remove & for function pointers * rename and retype D_02007020 * format * remove tiny whitespace * reorder if statement * finish renaming * replace cast with bitwise operation * move globally used functions to functions.h * reorder description * move headers for EnItem00 and EnAObj to z64actor.h * retype Item_DropCollectible and Item_DropCollectible2 to return EnItem00* * rename ShotSun_StartFairyCountdown to ShotSun_TriggerFairy * rename ShotSun_FairyCountdown to ShotSun_SpawnFairy * add unk_E3EC field to MessageContext * rename to ShotSun_UpdateHyliaSun for now * remove != 0 on flag check * remove unsigned suffix and use enum constant for Item_DropCollectible call * add unk_95C field to Player * add ub comment * retype unk_1A4 and remove explicit struct padding * Update src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> Co-authored-by: Random <28494085+Random06457@users.noreply.github.com> Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
parent
a00015a1ac
commit
8c72e1dea6
17 changed files with 254 additions and 590 deletions
|
@ -1,38 +1,6 @@
|
|||
#include <ultra64.h>
|
||||
#include <global.h>
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ A_OBJ_BLOCK_SMALL,
|
||||
/* 0x01 */ A_OBJ_BLOCK_LARGE,
|
||||
/* 0x02 */ A_OBJ_BLOCK_HUGE,
|
||||
/* 0x03 */ A_OBJ_BLOCK_SMALL_ROT,
|
||||
/* 0x04 */ A_OBJ_BLOCK_LARGE_ROT,
|
||||
/* 0x05 */ A_OBJ_CUBE_SMALL,
|
||||
/* 0x06 */ A_OBJ_UNKNOWN_6,
|
||||
/* 0x07 */ A_OBJ_GRASS_CLUMP,
|
||||
/* 0x08 */ A_OBJ_TREE_STUMP,
|
||||
/* 0x09 */ A_OBJ_SIGNPOST_OBLONG,
|
||||
/* 0x0A */ A_OBJ_SIGNPOST_ARROW,
|
||||
/* 0x0B */ A_OBJ_KNOB
|
||||
} AObjType;
|
||||
|
||||
struct EnAObj;
|
||||
|
||||
typedef void (*EnAObjActionFunc)(struct EnAObj*, GlobalContext*);
|
||||
|
||||
typedef struct EnAObj {
|
||||
/* 0x000 */ DynaPolyActor dyna;
|
||||
/* 0x164 */ EnAObjActionFunc actionFunc;
|
||||
/* 0x168 */ s32 unk_168;
|
||||
/* 0x16C */ s16 textId;
|
||||
/* 0x16E */ s16 unk_16E;
|
||||
/* 0x170 */ s16 unk_170;
|
||||
/* 0x172 */ s16 unk_172;
|
||||
/* 0x174 */ s16 unk_174;
|
||||
/* 0x178 */ f32 unk_178;
|
||||
/* 0x17C */ ColliderCylinder collider;
|
||||
} EnAObj; // size = 0x1C8
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
#define THIS ((EnAObj*)thisx)
|
||||
|
|
|
@ -1,52 +1,6 @@
|
|||
#include <ultra64.h>
|
||||
#include <global.h>
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ ITEM00_RUPEE_GREEN,
|
||||
/* 0x01 */ ITEM00_RUPEE_BLUE,
|
||||
/* 0x02 */ ITEM00_RUPEE_RED,
|
||||
/* 0x03 */ ITEM00_HEART,
|
||||
/* 0x04 */ ITEM00_BOMBS_A,
|
||||
/* 0x05 */ ITEM00_ARROWS_SINGLE,
|
||||
/* 0x06 */ ITEM00_HEART_PIECE,
|
||||
/* 0x07 */ ITEM00_HEART_CONTAINER,
|
||||
/* 0x08 */ ITEM00_ARROWS_SMALL,
|
||||
/* 0x09 */ ITEM00_ARROWS_MEDIUM,
|
||||
/* 0x0A */ ITEM00_ARROWS_LARGE,
|
||||
/* 0x0B */ ITEM00_BOMBS_B,
|
||||
/* 0x0C */ ITEM00_NUTS,
|
||||
/* 0x0D */ ITEM00_STICK,
|
||||
/* 0x0E */ ITEM00_MAGIC_LARGE,
|
||||
/* 0x0F */ ITEM00_MAGIC_SMALL,
|
||||
/* 0x10 */ ITEM00_SEEDS,
|
||||
/* 0x11 */ ITEM00_SMALL_KEY,
|
||||
/* 0x12 */ ITEM00_FLEXIBLE,
|
||||
/* 0x13 */ ITEM00_RUPEE_ORANGE,
|
||||
/* 0x14 */ ITEM00_RUPEE_PURPLE,
|
||||
/* 0x15 */ ITEM00_SHIELD_DEKU,
|
||||
/* 0x16 */ ITEM00_SHIELD_HYLIAN,
|
||||
/* 0x17 */ ITEM00_TUNIC_ZORA,
|
||||
/* 0x18 */ ITEM00_TUNIC_GORON,
|
||||
/* 0x19 */ ITEM00_BOMBS_SPECIAL
|
||||
} Item00Type;
|
||||
|
||||
struct EnItem00;
|
||||
|
||||
typedef void (*EnItem00ActionFunc)(struct EnItem00*, GlobalContext*);
|
||||
|
||||
typedef struct EnItem00 {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x14C */ EnItem00ActionFunc actionFunc;
|
||||
/* 0x150 */ s16 collectibleFlag;
|
||||
/* 0x152 */ s16 unk_152;
|
||||
/* 0x154 */ s16 unk_154;
|
||||
/* 0x156 */ s16 unk_156;
|
||||
/* 0x158 */ s16 unk_158;
|
||||
/* 0x15A */ s16 unk_15A;
|
||||
/* 0x15C */ f32 unk_15C;
|
||||
/* 0x160 */ ColliderCylinder collider;
|
||||
} EnItem00; // size = 0x1AC
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
#define THIS ((EnItem00*)thisx)
|
||||
|
@ -915,7 +869,7 @@ s16 func_8001F404(s16 dropId) {
|
|||
|
||||
// External functions used by other actors to drop collectibles, which usually results in spawning an En_Item00 actor.
|
||||
|
||||
Actor* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params) {
|
||||
EnItem00* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params) {
|
||||
s32 pad[2];
|
||||
EnItem00* spawnedActor = NULL;
|
||||
s16 param4000 = params & 0x4000;
|
||||
|
@ -955,10 +909,10 @@ Actor* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 param
|
|||
}
|
||||
}
|
||||
|
||||
return (Actor*)spawnedActor;
|
||||
return spawnedActor;
|
||||
}
|
||||
|
||||
Actor* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params) {
|
||||
EnItem00* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params) {
|
||||
EnItem00* spawnedActor = NULL;
|
||||
s32 pad;
|
||||
s16 param4000 = params & 0x4000;
|
||||
|
@ -987,7 +941,7 @@ Actor* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, s16 para
|
|||
}
|
||||
}
|
||||
|
||||
return (Actor*)spawnedActor;
|
||||
return spawnedActor;
|
||||
}
|
||||
|
||||
void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3f* spawnPos, s16 params) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue