ovl en sob1 OK and Documented (#224)

* All but two match

* format

* Matched the last two functions

* Merge updates

* Bring data over as a comment

* Brought data over

* Cleanup and start documenting

* Documented

* Removed NON_MATCHING define

* Actually save the .h file

* Format and add items comment

* Add comment

* Add header to .c file

* Cleanup

* Rename EnSob1_GetGoodbyeBombShop

* Update items comment

* Final cleanup

* Rename InitialUpdate

* PR suggestions except enum for objIndices

* Add todo about objIndices index enum

* Change char to UNK_TYPE1 for padding

* Textures and convert weekEvents to hex

* PR suggestions

* Format

* Cleanup function declaration and add cutscene state enum

* Update src/overlays/actors/ovl_En_Sob1/z_en_sob1.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Update src/overlays/actors/ovl_En_Sob1/z_en_sob1.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Update src/overlays/actors/ovl_En_Sob1/z_en_sob1.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

Co-authored-by: Derek Hensley <d.hensley@tempered.io>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
This commit is contained in:
Derek Hensley 2021-07-28 19:26:40 -07:00 committed by GitHub
parent b292647ea2
commit 8e2f2b4cdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1877 additions and 257 deletions

View File

@ -651,7 +651,8 @@ typedef enum {
/* 0x27F */ OBJECT_LBFSHOT,
/* 0x280 */ OBJECT_FUSEN,
/* 0x281 */ OBJECT_ENDING_OBJ,
/* 0x282 */ OBJECT_GI_MASK13
/* 0x282 */ OBJECT_GI_MASK13,
/* 0x283 */ OBJECT_ID_MAX
} ObjectID;
#endif

View File

@ -4142,10 +4142,9 @@ SECTIONS
ovl_En_Sob1 : AT(RomLocation)
{
build/src/overlays/actors/ovl_En_Sob1/z_en_sob1.o(.text)
build/asm/overlays/ovl_En_Sob1_data.o(.data)
build/src/overlays/actors/ovl_En_Sob1/z_en_sob1.o(.data)
build/src/overlays/actors/ovl_En_Sob1/z_en_sob1.o(.rodata)
build/asm/overlays/ovl_En_Sob1_rodata.o(.rodata)
build/asm/overlays/ovl_En_Sob1_late_rodata.o(.rodata)
build/src/overlays/actors/ovl_En_Sob1/z_en_sob1_overlay.o(.ovl)
}
SegmentEnd = .;
SegmentSize = SegmentEnd - SegmentStart;

View File

@ -640,6 +640,21 @@ D_06002C8C = 0x06002C8C;
D_060000B4 = 0x060000B4;
D_06002BF0 = 0x06002BF0;
/* z_en_sob1 */
D_06008268 = 0x06008268;
D_0600D208 = 0x0600D208;
D_0600078C = 0x0600078C;
D_06011AC8 = 0x06011AC8;
D_060000FC = 0x060000FC;
D_06000970 = 0x06000970;
D_060087BC = 0x060087BC;
D_060050A0 = 0x060050A0;
D_060058A0 = 0x060058A0;
D_060060A0 = 0x060060A0;
D_06010438 = 0x06010438;
D_06010C38 = 0x06010C38;
D_06011038 = 0x06011038;
/* z_en_suttari */
D_0600C240 = 0x0600C240;
D_0600071C = 0x0600071C;

View File

@ -28,7 +28,7 @@ typedef struct EnIn {
/* 0x238 */ char unk238[0x4];
/* 0x23C */ u8 unk23C;
/* 0x23D */ u8 unk23D;
/* 0x240 */ Path *path;
/* 0x240 */ Path* path;
/* 0x244 */ s16 unk244;
/* 0x248 */ Vec3f unk248;
/* 0x254 */ Vec3f unk254;

File diff suppressed because it is too large Load Diff

View File

@ -2,14 +2,92 @@
#define Z_EN_SOB1_H
#include <global.h>
#include "overlays/actors/ovl_En_GirlA/z_en_girla.h"
struct EnSob1;
typedef void (*EnSob1ActionFunc)(struct EnSob1*, GlobalContext*);
typedef void (*EnSob1BlinkFunc)(struct EnSob1*);
#define ENSOB1_GET_SHOPTYPE(thisx) ((thisx)->params & 0x1F)
#define ENSOB1_GET_PATH(thisx) (((thisx)->params & 0x3E0) >> 5)
typedef struct EnSob1XZRange {
/* 0x0 */ f32 xMin;
/* 0x4 */ f32 xMax;
/* 0x8 */ f32 zMin;
/* 0xC */ f32 zMax;
} EnSob1XZRange; // size = 0x10
typedef struct EnSob1 {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x28C];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnSob1ActionFunc actionFunc;
/* 0x18C */ EnSob1ActionFunc tmpActionFunc; // Used to restore back to correct browsing function
/* 0x190 */ EnSob1ActionFunc changeObjectFunc;
/* 0x194 */ ColliderCylinder collider;
/* 0x1E0 */ Path* path;
/* 0x1E4 */ s32 pathPointsIdx;
/* 0x1E8 */ s16 delayTimer;
/* 0x1EA */ s8 objIndices[3];
/* 0x1EE */ s16 headRot;
/* 0x1F0 */ s16 headRotTarget;
/* 0x1F2 */ Vec3s limbDrawTable[20];
/* 0x26A */ Vec3s transitionDrawTable[20];
/* 0x2E2 */ s16 eyeTexIndex;
/* 0x2E4 */ s16 blinkTimer;
/* 0x2E8 */ EnSob1BlinkFunc blinkFunc;
/* 0x2EC */ EnGirlA* items[3]; // Items on shelf are indexed as: /* 2 1 0 */
/* 0x2F8 */ s32 stickAccumX;
/* 0x2FC */ s32 stickAccumY;
/* 0x300 */ f32 cursorX;
/* 0x304 */ f32 cursorY;
/* 0x308 */ f32 cursorZ;
/* 0x30C */ s32 cursorColorR;
/* 0x310 */ s32 cursorColorG;
/* 0x314 */ s32 cursorColorB;
/* 0x318 */ s32 cursorColorA;
/* 0x31C */ f32 cursorAnimTween;
/* 0x320 */ u8 cursorAnimState;
/* 0x321 */ u8 drawCursor;
/* 0x322 */ u8 cursorIdx;
/* 0x324 */ StickDirectionPrompt stickLeftPrompt;
/* 0x35C */ StickDirectionPrompt stickRightPrompt;
/* 0x394 */ f32 arrowAnimTween;
/* 0x398 */ f32 stickAnimTween;
/* 0x39C */ u8 arrowAnimState;
/* 0x39D */ u8 stickAnimState;
/* 0x39E */ s16 cutsceneState;
/* 0x3A0 */ s16 cutscene;
/* 0x3A2 */ s16 lookFowardCutscene;
/* 0x3A4 */ s16 lookToShelfCutscene;
/* 0x3A6 */ s16 lookToShopkeeperCutscene;
/* 0x3A8 */ UNK_TYPE1 pad3A8[0x4];
/* 0x3AC */ f32 shopItemSelectedTween;
/* 0x3B0 */ UNK_TYPE1 pad3B0[0x4];
/* 0x3B4 */ u16 welcomeTextId;
/* 0x3B6 */ u16 talkOptionTextId;
/* 0x3B8 */ u16 goodbyeTextId;
/* 0x3BA */ u8 wasTalkedToWhileWalking;
/* 0x3BC */ EnSob1XZRange posXZRange;
/* 0x3CC */ s16 shopType;
} EnSob1; // size = 0x3D0
typedef enum EnSob1ShopType {
/* 0 */ ZORA_SHOP,
/* 1 */ GORON_SHOP,
/* 2 */ BOMB_SHOP,
/* 3 */ GORON_SHOP_SPRING
} EnSob1ShopType;
typedef enum {
/* 0 */ ENSOB1_CUTSCENESTATE_STOPPED,
/* 1 */ ENSOB1_CUTSCENESTATE_WAITING,
/* 2 */ ENSOB1_CUTSCENESTATE_PLAYING
} EnSob1CutsceneState;
//! @TODO: Add enum for objIndices index based on what the object is for
extern const ActorInit En_Sob1_InitVars;
#endif // Z_EN_SOB1_H

View File

@ -9612,82 +9612,82 @@
0x80A0C790:("EnBoj05_Destroy",),
0x80A0C7A0:("EnBoj05_Update",),
0x80A0C7B0:("EnBoj05_Draw",),
0x80A0C810:("func_80A0C810",),
0x80A0C8AC:("func_80A0C8AC",),
0x80A0C8B8:("func_80A0C8B8",),
0x80A0C938:("func_80A0C938",),
0x80A0CA38:("func_80A0CA38",),
0x80A0CC88:("func_80A0CC88",),
0x80A0CCEC:("func_80A0CCEC",),
0x80A0CD48:("func_80A0CD48",),
0x80A0CE10:("func_80A0CE10",),
0x80A0C810:("EnSob1_ChangeAnim",),
0x80A0C8AC:("EnSob1_SetupAction",),
0x80A0C8B8:("EnSob1_TestItemSelected",),
0x80A0C938:("EnSob1_GetTalkOption",),
0x80A0CA38:("EnSob1_GetWelcome",),
0x80A0CC88:("EnSob1_GetGoodbye",),
0x80A0CCEC:("EnSob1_EndInteractionBombShop",),
0x80A0CD48:("EnSob1_SpawnShopItems",),
0x80A0CE10:("EnSob1_GetObjIndices",),
0x80A0CED4:("EnSob1_Init",),
0x80A0D008:("EnSob1_Destroy",),
0x80A0D034:("func_80A0D034",),
0x80A0D0B8:("func_80A0D0B8",),
0x80A0D188:("func_80A0D188",),
0x80A0D1F4:("func_80A0D1F4",),
0x80A0D258:("func_80A0D258",),
0x80A0D2B8:("func_80A0D2B8",),
0x80A0D320:("func_80A0D320",),
0x80A0D388:("func_80A0D388",),
0x80A0D3C4:("func_80A0D3C4",),
0x80A0D414:("func_80A0D414",),
0x80A0D4A0:("func_80A0D4A0",),
0x80A0D628:("func_80A0D628",),
0x80A0D74C:("func_80A0D74C",),
0x80A0D77C:("func_80A0D77C",),
0x80A0D850:("func_80A0D850",),
0x80A0D904:("func_80A0D904",),
0x80A0DA5C:("func_80A0DA5C",),
0x80A0DAAC:("func_80A0DAAC",),
0x80A0DB78:("func_80A0DB78",),
0x80A0DCC4:("func_80A0DCC4",),
0x80A0DD40:("func_80A0DD40",),
0x80A0DE64:("func_80A0DE64",),
0x80A0DFD0:("func_80A0DFD0",),
0x80A0E0C0:("func_80A0E0C0",),
0x80A0E1B8:("func_80A0E1B8",),
0x80A0E258:("func_80A0E258",),
0x80A0E330:("func_80A0E330",),
0x80A0E420:("func_80A0E420",),
0x80A0E4DC:("func_80A0E4DC",),
0x80A0E518:("func_80A0E518",),
0x80A0E554:("func_80A0E554",),
0x80A0E884:("func_80A0E884",),
0x80A0E96C:("func_80A0E96C",),
0x80A0E9E0:("func_80A0E9E0",),
0x80A0EA84:("func_80A0EA84",),
0x80A0EAF8:("func_80A0EAF8",),
0x80A0EBC0:("func_80A0EBC0",),
0x80A0EC98:("func_80A0EC98",),
0x80A0ED7C:("func_80A0ED7C",),
0x80A0EDA0:("func_80A0EDA0",),
0x80A0EE3C:("func_80A0EE3C",),
0x80A0EEC8:("func_80A0EEC8",),
0x80A0EF48:("func_80A0EF48",),
0x80A0F014:("func_80A0F014",),
0x80A0F1C4:("func_80A0F1C4",),
0x80A0F284:("func_80A0F284",),
0x80A0F2C8:("func_80A0F2C8",),
0x80A0F2FC:("func_80A0F2FC",),
0x80A0F39C:("func_80A0F39C",),
0x80A0F3D4:("func_80A0F3D4",),
0x80A0F470:("func_80A0F470",),
0x80A0F554:("func_80A0F554",),
0x80A0F638:("func_80A0F638",),
0x80A0F6B0:("func_80A0F6B0",),
0x80A0D034:("EnSob1_UpdateCursorPos",),
0x80A0D0B8:("EnSob1_EndInteraction",),
0x80A0D188:("EnSob1_TestEndInteraction",),
0x80A0D1F4:("EnSob1_TestCancelOption",),
0x80A0D258:("EnSob1_SetupStartShopping",),
0x80A0D2B8:("EnSob1_StartShopping",),
0x80A0D320:("EnSob1_TalkToShopkeeper",),
0x80A0D388:("EnSob1_SetupLookToShopkeeperFromShelf",),
0x80A0D3C4:("EnSob1_EndingInteraction",),
0x80A0D414:("EnSob1_SetupWalk",),
0x80A0D4A0:("EnSob1_Idle",),
0x80A0D628:("EnSob1_UpdateJoystickInputState",),
0x80A0D74C:("EnSob1_SetCursorIndexFromNeutral",),
0x80A0D77C:("EnSob1_Hello",),
0x80A0D850:("EnSob1_FacingShopkeeperDialogResult",),
0x80A0D904:("EnSob1_FaceShopkeeper",),
0x80A0DA5C:("EnSob1_TalkingToShopkeeper",),
0x80A0DAAC:("EnSob1_LookToShopkeeperFromShelf",),
0x80A0DB78:("EnSob1_EndWalk",),
0x80A0DCC4:("EnSob1_SetupIdle",),
0x80A0DD40:("EnSob1_Walk",),
0x80A0DE64:("EnSob1_Walking",),
0x80A0DFD0:("EnSob1_ItemPurchased",),
0x80A0E0C0:("EnSob1_LookToShelf",),
0x80A0E1B8:("EnSob1_CursorLeftRight",),
0x80A0E258:("EnSob1_HasPlayerSelectedItem",),
0x80A0E330:("EnSob1_BrowseShelf",),
0x80A0E420:("EnSob1_SetupBuyItemWithFanfare",),
0x80A0E4DC:("EnSob1_SetupCannotBuy",),
0x80A0E518:("EnSob1_SetupCanBuy",),
0x80A0E554:("EnSob1_HandleCanBuyItem",),
0x80A0E884:("EnSob1_SelectItem",),
0x80A0E96C:("EnSob1_CannotBuy",),
0x80A0E9E0:("EnSob1_CanBuy",),
0x80A0EA84:("EnSob1_BuyItemWithFanfare",),
0x80A0EAF8:("EnSob1_SetupItemPurchased",),
0x80A0EBC0:("EnSob1_ContinueShopping",),
0x80A0EC98:("EnSob1_PositionSelectedItem",),
0x80A0ED7C:("EnSob1_ResetItemPosition",),
0x80A0EDA0:("EnSob1_TakeItemOffShelf",),
0x80A0EE3C:("EnSob1_ReturnItemToShelf",),
0x80A0EEC8:("EnSob1_UpdateItemSelectedProperty",),
0x80A0EF48:("EnSob1_UpdateCursorAnim",),
0x80A0F014:("EnSob1_UpdateStickDirectionPromptAnim",),
0x80A0F1C4:("EnSob1_GetXZAngleAndDistanceSqToPoint",),
0x80A0F284:("EnSob1_GetCutscenes",),
0x80A0F2C8:("EnSob1_WaitForBlink",),
0x80A0F2FC:("EnSob1_Blink",),
0x80A0F39C:("EnSob1_ChangeObject",),
0x80A0F3D4:("EnSob1_AreObjectsLoaded",),
0x80A0F470:("EnSob1_InitZoraShopkeeper",),
0x80A0F554:("EnSob1_InitGoronShopkeeper",),
0x80A0F638:("EnSob1_InitBombShopkeeper",),
0x80A0F6B0:("EnSob1_InitShop",),
0x80A0FA0C:("EnSob1_Update",),
0x80A0FADC:("func_80A0FADC",),
0x80A0FD4C:("func_80A0FD4C",),
0x80A0FEE8:("func_80A0FEE8",),
0x80A10290:("func_80A10290",),
0x80A102C8:("func_80A102C8",),
0x80A10308:("func_80A10308",),
0x80A10344:("func_80A10344",),
0x80A10368:("func_80A10368",),
0x80A104E4:("func_80A104E4",),
0x80A10608:("func_80A10608",),
0x80A0FADC:("EnSob1_DrawCursor",),
0x80A0FD4C:("EnSob1_DrawTextRec",),
0x80A0FEE8:("EnSob1_DrawStickDirectionPrompt",),
0x80A10290:("EnSob1_OverrideLimbDrawZoraShopkeeper",),
0x80A102C8:("EnSob1_OverrideLimbDrawBombShopkeeper",),
0x80A10308:("EnSob1_PostLimbDrawBombShopkeeper",),
0x80A10344:("EnSob1_EndDList",),
0x80A10368:("EnSob1_DrawZoraShopkeeper",),
0x80A104E4:("EnSob1_DrawGoronShopkeeper",),
0x80A10608:("EnSob1_DrawBombShopkeeper",),
0x80A10FD0:("func_80A10FD0",),
0x80A11144:("func_80A11144",),
0x80A1143C:("func_80A1143C",),

View File

@ -11754,28 +11754,28 @@
0x80A0C7E0:("enBoj05OverlayInfo","OverlayRelocationSection","",0x14),
0x80A0C7F4:("enBoj05OverlayRelocations","u32","[4]",0x10),
0x80A0C80C:("enBoj05OverlayInfoOffset","u32","",0x4),
0x80A10860:("D_80A10860","UNK_PTR","",0x4),
0x80A10860:("sAnimationsBombShopkeeper","UNK_PTR","",0x4),
0x80A10890:("En_Sob1_InitVars","UNK_TYPE1","",0x1),
0x80A108B0:("D_80A108B0","UNK_TYPE2","",0x2),
0x80A108C8:("D_80A108C8","UNK_TYPE1","",0x1),
0x80A108D0:("D_80A108D0","UNK_TYPE1","",0x1),
0x80A108D8:("D_80A108D8","UNK_TYPE1","",0x1),
0x80A108E0:("D_80A108E0","UNK_TYPE1","",0x1),
0x80A108E8:("D_80A108E8","UNK_TYPE1","",0x1),
0x80A108F0:("D_80A108F0","UNK_TYPE1","",0x1),
0x80A108F8:("D_80A108F8","UNK_TYPE1","",0x1),
0x80A10900:("D_80A10900","UNK_TYPE1","",0x1),
0x80A10908:("D_80A10908","UNK_TYPE1","",0x1),
0x80A10918:("D_80A10918","UNK_TYPE1","",0x1),
0x80A10978:("D_80A10978","UNK_TYPE1","",0x1),
0x80A109B8:("D_80A109B8","UNK_TYPE4","",0x4),
0x80A108B0:("sObjectIds","UNK_TYPE2","",0x2),
0x80A108C8:("sFacingShopkeeperTextIds","UNK_TYPE1","",0x1),
0x80A108D0:("sNoRoomTextIds","UNK_TYPE1","",0x1),
0x80A108D8:("sBuySuccessTextIds","UNK_TYPE1","",0x1),
0x80A108E0:("sCannotGetNowTextIds","UNK_TYPE1","",0x1),
0x80A108E8:("sNeedRupeesTextIds","UNK_TYPE1","",0x1),
0x80A108F0:("sNeedEmptyBottleTextIds","UNK_TYPE1","",0x1),
0x80A108F8:("sCannotGetNow2TextIds","UNK_TYPE1","",0x1),
0x80A10900:("sNoRoom2TextIds","UNK_TYPE1","",0x1),
0x80A10908:("sActorScales","UNK_TYPE1","",0x1),
0x80A10918:("sShops","UNK_TYPE1","",0x1),
0x80A10978:("sPosXZRanges","UNK_TYPE1","",0x1),
0x80A109B8:("sSelectedItemPositions","UNK_TYPE4","",0x4),
0x80A109E8:("D_80A109E8","UNK_TYPE1","",0x1),
0x80A109EC:("D_80A109EC","UNK_PTR","",0x4),
0x80A109FC:("D_80A109FC","UNK_TYPE4","",0x4),
0x80A10A2C:("D_80A10A2C","UNK_TYPE1","",0x1),
0x80A10A38:("D_80A10A38","UNK_TYPE1","",0x1),
0x80A10A50:("D_80A10A50","char","[]",0x1),
0x80A10A60:("D_80A10A60","char","[]",0x1),
0x80A109EC:("sInitFuncs","UNK_PTR","",0x4),
0x80A109FC:("sPosOffset","UNK_TYPE4","",0x4),
0x80A10A2C:("sZoraShopkeeperEyeTextures","UNK_TYPE1","",0x1),
0x80A10A38:("sGoronShopkeeperEyeTextures","UNK_TYPE1","",0x1),
0x80A10A50:("filename1","char","[]",0x1),
0x80A10A60:("filename2","char","[]",0x1),
0x80A10A70:("jtbl_D_80A10A70","UNK_PTR","",0x4),
0x80A10AD4:("D_80A10AD4","f32","",0x4),
0x80A10AD8:("D_80A10AD8","f32","",0x4),