mirror of https://github.com/zeldaret/tmc.git
Decompile Object74
This commit is contained in:
parent
241c0312d9
commit
cffa1024ca
|
@ -3261,8 +3261,8 @@ _0801AF10:
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0801AF18
|
||||
sub_0801AF18: @ 0x0801AF18
|
||||
thumb_func_start SetMultipleTiles
|
||||
SetMultipleTiles: @ 0x0801AF18
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r1, #0
|
||||
|
|
|
@ -1,277 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Object74
|
||||
Object74: @ 0x08097B6C
|
||||
push {lr}
|
||||
ldr r2, _08097B80 @ =gUnk_08123330
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08097B80: .4byte gUnk_08123330
|
||||
|
||||
thumb_func_start sub_08097B84
|
||||
sub_08097B84: @ 0x08097B84
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08097BCC @ =gUnk_08123328
|
||||
str r0, [r4, #0x48]
|
||||
adds r2, #0x5d
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08097BD0 @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
beq _08097BB0
|
||||
adds r0, r1, #0
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08097BD4
|
||||
_08097BB0:
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CFC
|
||||
b _08097BD8
|
||||
.align 2, 0
|
||||
_08097BCC: .4byte gUnk_08123328
|
||||
_08097BD0: .4byte 0x0000FFFF
|
||||
_08097BD4:
|
||||
bl sub_0805BC4C
|
||||
_08097BD8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097BDC
|
||||
sub_08097BDC: @ 0x08097BDC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08097C10
|
||||
movs r0, #1
|
||||
bl SetPlayerControl
|
||||
ldr r0, _08097C14 @ =gUnk_02034490
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1e
|
||||
bl RequestPriorityDuration
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CB0
|
||||
cmp r0, #0
|
||||
bne _08097C10
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CB4
|
||||
_08097C10:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08097C14: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_08097C18
|
||||
sub_08097C18: @ 0x08097C18
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097C1C
|
||||
sub_08097C1C: @ 0x08097C1C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08097C20
|
||||
sub_08097C20: @ 0x08097C20
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x1e
|
||||
bl SetPriorityTimer
|
||||
adds r0, r4, #0
|
||||
bl sub_0800445C
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl CreateMagicSparkles
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r1, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0
|
||||
bne _08097CA6
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r1, r0
|
||||
ldr r6, _08097CA8 @ =gScreen
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #8
|
||||
orrs r0, r1
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x68
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x10
|
||||
bne _08097CA6
|
||||
movs r0, #0
|
||||
bl SetPlayerControl
|
||||
ldr r1, _08097CAC @ =gUnk_02034490
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x66
|
||||
strh r5, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_08097CFC
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x19]
|
||||
subs r0, #0x11
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
movs r0, #0x72
|
||||
bl SoundReq
|
||||
movs r0, #0x63
|
||||
bl SetGlobalFlag
|
||||
_08097CA6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08097CA8: .4byte gScreen
|
||||
_08097CAC: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_08097CB0
|
||||
sub_08097CB0: @ 0x08097CB0
|
||||
movs r0, #0
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_08097CB4
|
||||
sub_08097CB4: @ 0x08097CB4
|
||||
push {lr}
|
||||
movs r3, #0
|
||||
movs r1, #3
|
||||
strb r1, [r0, #0xc]
|
||||
ldrb r2, [r0, #0x18]
|
||||
subs r1, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x18]
|
||||
ldrb r2, [r0, #0x19]
|
||||
movs r1, #0xd
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
movs r2, #4
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x19]
|
||||
movs r1, #0x1e
|
||||
strb r1, [r0, #0xe]
|
||||
strb r3, [r0, #0xf]
|
||||
ldr r1, _08097CF8 @ =gScreen
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0xf4
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r2]
|
||||
adds r1, #0x68
|
||||
adds r0, #0xc0
|
||||
strh r0, [r1]
|
||||
movs r0, #0xa5
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08097CF8: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_08097CFC
|
||||
sub_08097CFC: @ 0x08097CFC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrh r1, [r5, #0x2e]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08097D40
|
||||
ldr r0, _08097D38 @ =gUnk_0812336A
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08097D3C @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0801AF18
|
||||
b _08097D6C
|
||||
.align 2, 0
|
||||
_08097D38: .4byte gUnk_0812336A
|
||||
_08097D3C: .4byte gRoomControls
|
||||
_08097D40:
|
||||
ldr r0, _08097D70 @ =gUnk_08123344
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08097D74 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0801AF18
|
||||
_08097D6C:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08097D70: .4byte gUnk_08123344
|
||||
_08097D74: .4byte gRoomControls
|
|
@ -43357,21 +43357,6 @@
|
|||
"size": 4,
|
||||
"type": "animation"
|
||||
},
|
||||
{
|
||||
"path": "object3A/gUnk_081215E8.bin",
|
||||
"start": 1185256,
|
||||
"size": 80
|
||||
},
|
||||
{
|
||||
"path": "object3A/gUnk_08121648.bin",
|
||||
"start": 1185352,
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"path": "macroPlayer/gUnk_081216B4.bin",
|
||||
"start": 1185460,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object3D/gUnk_081216C8_EU.bin",
|
||||
"variants": [
|
||||
|
@ -44601,21 +44586,6 @@
|
|||
"start": 1192728,
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_08123328.bin",
|
||||
"start": 1192744,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_08123344.bin",
|
||||
"start": 1192772,
|
||||
"size": 38
|
||||
},
|
||||
{
|
||||
"path": "object74/gUnk_0812336A.bin",
|
||||
"start": 1192810,
|
||||
"size": 26
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_Bell_0.bin",
|
||||
"start": 1192844,
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08123328:: @ 08123328
|
||||
.incbin "object74/gUnk_08123328.bin"
|
||||
|
||||
gUnk_08123330:: @ 08123330
|
||||
.4byte sub_08097B84
|
||||
.4byte sub_08097BDC
|
||||
.4byte sub_08097C18
|
||||
.4byte sub_08097C20
|
||||
.4byte sub_08097C1C
|
||||
|
||||
gUnk_08123344:: @ 08123344
|
||||
.incbin "object74/gUnk_08123344.bin"
|
||||
|
||||
gUnk_0812336A:: @ 0812336A
|
||||
.incbin "object74/gUnk_0812336A.bin"
|
|
@ -64,6 +64,14 @@ extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
|
|||
extern void SetDirtTile(u32);
|
||||
/** @see Item */
|
||||
extern void SetInventoryValue(u32, u32);
|
||||
/**
|
||||
* @brief Sets multiple tiles at once
|
||||
*
|
||||
* @param tileData [u16 tileIndex, s16 positionOffset], ends with 0xffff
|
||||
* @param basePosition the position the offsets in tileData are based on
|
||||
* @param layer the tile layer
|
||||
*/
|
||||
extern void SetMultipleTiles(u16* tileData, u32 basePosition, u32 layer);
|
||||
extern void SoundReqClipped(Entity*, u32);
|
||||
extern void TryLoadPrologueHyruleTown(void);
|
||||
extern void UnloadGFXSlots(Entity*);
|
||||
|
|
296
include/object.h
296
include/object.h
|
@ -226,198 +226,198 @@ typedef enum {
|
|||
OBJECT_C1,
|
||||
} Object;
|
||||
|
||||
void ItemOnGround(Entity*);
|
||||
void DeathFx(Entity*);
|
||||
void ItemOnGround();
|
||||
void DeathFx();
|
||||
void ItemForSale();
|
||||
void Button(Entity*);
|
||||
void MinishEmoticon(Entity*);
|
||||
void Pot(Entity*);
|
||||
void Button();
|
||||
void MinishEmoticon();
|
||||
void Pot();
|
||||
void EzloCap();
|
||||
void BlockPushed();
|
||||
void LockedDoor(Entity*);
|
||||
void Object9(Entity*);
|
||||
void ObjectA(Entity*);
|
||||
void LockedDoor();
|
||||
void Object9();
|
||||
void ObjectA();
|
||||
void ObjectB();
|
||||
void ChestSpawner();
|
||||
void ObjectD(Entity*);
|
||||
void ObjectE(Entity*);
|
||||
void SpecialFx(Entity*);
|
||||
void Object10(Entity*);
|
||||
void ObjectD();
|
||||
void ObjectE();
|
||||
void SpecialFx();
|
||||
void Object10();
|
||||
void Object11();
|
||||
void Object12(Entity*);
|
||||
void Railtrack(Entity*);
|
||||
void Object12();
|
||||
void Railtrack();
|
||||
void LilypadLarge();
|
||||
void Object15(Entity*);
|
||||
void FloatingPlatform(Entity*);
|
||||
void Object17(Entity*);
|
||||
void EvilSpirit(Entity*);
|
||||
void HouseDoorExterior(Entity*);
|
||||
void Rupee(Entity*);
|
||||
void GreatFairy(Entity*);
|
||||
void Object1C(Entity*);
|
||||
void Object1D(Entity*);
|
||||
void Object1E(Entity*);
|
||||
void Object1F(Entity*);
|
||||
void Object20(Entity*);
|
||||
void Object15();
|
||||
void FloatingPlatform();
|
||||
void Object17();
|
||||
void EvilSpirit();
|
||||
void HouseDoorExterior();
|
||||
void Rupee();
|
||||
void GreatFairy();
|
||||
void Object1C();
|
||||
void Object1D();
|
||||
void Object1E();
|
||||
void Object1F();
|
||||
void Object20();
|
||||
void Object21();
|
||||
void FigurineDevice();
|
||||
void EyeSwitch(Entity*);
|
||||
void EyeSwitch();
|
||||
void PressurePlate();
|
||||
void BigBarrel(Entity*);
|
||||
void BarrelInside(Entity*);
|
||||
void BigBarrel();
|
||||
void BarrelInside();
|
||||
void PushableStatue();
|
||||
void Object28(Entity*);
|
||||
void AmbientClouds(Entity*);
|
||||
void Object2A(Entity*);
|
||||
void Object2B(Entity*);
|
||||
void Object28();
|
||||
void AmbientClouds();
|
||||
void Object2A();
|
||||
void Object2B();
|
||||
void Beanstalk();
|
||||
void Smoke(Entity*);
|
||||
void Smoke();
|
||||
void PushableRock();
|
||||
void HittableLever();
|
||||
void Object30(Entity*);
|
||||
void FrozenFlower(Entity*);
|
||||
void Object30();
|
||||
void FrozenFlower();
|
||||
void PullableMushroom();
|
||||
void Bollard(Entity*);
|
||||
void WarpPoint(Entity*);
|
||||
void Bollard();
|
||||
void WarpPoint();
|
||||
void Object35();
|
||||
void Object36(Entity*);
|
||||
void Object37(Entity*);
|
||||
void JarPortal(Entity*);
|
||||
void Object36();
|
||||
void Object37();
|
||||
void JarPortal();
|
||||
void BossDoor();
|
||||
void Object3A();
|
||||
void MacroMushromStalks(Entity*);
|
||||
void MacroPlayer(Entity*);
|
||||
void Object3D(Entity*);
|
||||
void MacroMushromStalks();
|
||||
void MacroPlayer();
|
||||
void Object3D();
|
||||
void Object3E();
|
||||
void GiantLeaf(Entity*);
|
||||
void GiantLeaf();
|
||||
void Fairy();
|
||||
void LadderUp(Entity*);
|
||||
void Object42(Entity*);
|
||||
void LadderUp();
|
||||
void Object42();
|
||||
void Object43();
|
||||
void Object44(Entity*);
|
||||
void Object45(Entity*);
|
||||
void GiantBookLadder(Entity*);
|
||||
void HeartContainer(Entity*);
|
||||
void FileScreenObjects(Entity*);
|
||||
void Object49(Entity*);
|
||||
void BackgroundCloud(Entity*);
|
||||
void Object4B(Entity*);
|
||||
void Object44();
|
||||
void Object45();
|
||||
void GiantBookLadder();
|
||||
void HeartContainer();
|
||||
void FileScreenObjects();
|
||||
void Object49();
|
||||
void BackgroundCloud();
|
||||
void Object4B();
|
||||
void PushableFurniture();
|
||||
void Furniture(Entity*);
|
||||
void MinishSizedEntrance(Entity*);
|
||||
void Archway(Entity*);
|
||||
void GiantRock(Entity*);
|
||||
void GiantRock2(Entity*);
|
||||
void Object52(Entity*);
|
||||
void Object53(Entity*);
|
||||
void Furniture();
|
||||
void MinishSizedEntrance();
|
||||
void Archway();
|
||||
void GiantRock();
|
||||
void GiantRock2();
|
||||
void Object52();
|
||||
void Object53();
|
||||
void PullableLever();
|
||||
void Minecart(Entity*);
|
||||
void ThoughtBubble(Entity*);
|
||||
void HiddenLadderDown(Entity*);
|
||||
void GentariCurtain(Entity*);
|
||||
void Minecart();
|
||||
void ThoughtBubble();
|
||||
void HiddenLadderDown();
|
||||
void GentariCurtain();
|
||||
void LavaPlatform();
|
||||
void Paper(Entity*);
|
||||
void Object5B(Entity*);
|
||||
void Mask(Entity*);
|
||||
void HouseDoorInterior(Entity*);
|
||||
void Whirlwind(Entity*);
|
||||
void ObjectBlockingStairs(Entity*);
|
||||
void SwordsmanNewsletter(Entity*);
|
||||
void Paper();
|
||||
void Object5B();
|
||||
void Mask();
|
||||
void HouseDoorInterior();
|
||||
void Whirlwind();
|
||||
void ObjectBlockingStairs();
|
||||
void SwordsmanNewsletter();
|
||||
void Object61();
|
||||
void GiantTwig();
|
||||
void Object63(Entity*);
|
||||
void Object64(Entity*);
|
||||
void LadderHoleInBookshelf(Entity*);
|
||||
void Object66(Entity*);
|
||||
void Object67(Entity*);
|
||||
void Object63();
|
||||
void Object64();
|
||||
void LadderHoleInBookshelf();
|
||||
void Object66();
|
||||
void Object67();
|
||||
void Object68();
|
||||
void Object69(Entity*);
|
||||
void Object6A(Entity*);
|
||||
void Object69();
|
||||
void Object6A();
|
||||
void CrenelBeanSprout();
|
||||
void MinecartDoor();
|
||||
void ObjectOnPillar();
|
||||
void MineralWaterSource(Entity*);
|
||||
void MinishSizedArchway(Entity*);
|
||||
void Object70(Entity*);
|
||||
void MineralWaterSource();
|
||||
void MinishSizedArchway();
|
||||
void Object70();
|
||||
void PushableGrave();
|
||||
void StoneTablet(Entity*);
|
||||
void LilypadSmall(Entity*);
|
||||
void Object74(Entity*);
|
||||
void Object75(Entity*);
|
||||
void Object76(Entity*);
|
||||
void Bell(Entity*);
|
||||
void MacroDecoration(Entity*);
|
||||
void Object79(Entity*);
|
||||
void Steam(Entity*);
|
||||
void StoneTablet();
|
||||
void LilypadSmall();
|
||||
void Object74();
|
||||
void Object75();
|
||||
void Object76();
|
||||
void Bell();
|
||||
void MacroDecoration();
|
||||
void Object79();
|
||||
void Steam();
|
||||
void PushableLever();
|
||||
void MacroShoes(Entity*);
|
||||
void MacroShoes();
|
||||
void ObjectOnSpinyBeetle();
|
||||
void Object7E(Entity*);
|
||||
void PicoBloom(Entity*);
|
||||
void Board(Entity*);
|
||||
void Object81(Entity*);
|
||||
void BigVortex(Entity*);
|
||||
void Object7E();
|
||||
void PicoBloom();
|
||||
void Board();
|
||||
void Object81();
|
||||
void BigVortex();
|
||||
void BigPushableLever();
|
||||
void SmallIceBlock();
|
||||
void BigIceBlock();
|
||||
void Object86(Entity*);
|
||||
void OctorokBossObject(Entity*);
|
||||
void MacroBook(Entity*);
|
||||
void MazaalBossObject(Entity*);
|
||||
void CabinFurniture(Entity*);
|
||||
void Object86();
|
||||
void OctorokBossObject();
|
||||
void MacroBook();
|
||||
void MazaalBossObject();
|
||||
void CabinFurniture();
|
||||
void DoubleBookshelf();
|
||||
void Book(Entity*);
|
||||
void Fireplace(Entity*);
|
||||
void Book();
|
||||
void Fireplace();
|
||||
void Object8E();
|
||||
void FrozenWaterElement();
|
||||
void Object90(Entity*);
|
||||
void Object90();
|
||||
void FrozenOctorok();
|
||||
void BakerOven(Entity*);
|
||||
void Lamp(Entity*);
|
||||
void WindTribeFlag(Entity*);
|
||||
void Bird(Entity*);
|
||||
void Object96(Entity*);
|
||||
void BakerOven();
|
||||
void Lamp();
|
||||
void WindTribeFlag();
|
||||
void Bird();
|
||||
void Object96();
|
||||
void KeyStealingTakkuri();
|
||||
void Object98(Entity*);
|
||||
void Object99(Entity*);
|
||||
void MacroAcorn(Entity*);
|
||||
void Object9B(Entity*);
|
||||
void TreeHidingPortal(Entity*);
|
||||
void LightableSwitch(Entity*);
|
||||
void TreeThorns(Entity*);
|
||||
void Fan(Entity*);
|
||||
void AngryStatue(Entity*);
|
||||
void PalaceArchway(Entity*);
|
||||
void ObjectA2(Entity*);
|
||||
void Cloud(Entity*);
|
||||
void MinishLight(Entity*);
|
||||
void FireballChain(Entity*);
|
||||
void ObjectA6(Entity*);
|
||||
void ObjectA7(Entity*);
|
||||
void Object98();
|
||||
void Object99();
|
||||
void MacroAcorn();
|
||||
void Object9B();
|
||||
void TreeHidingPortal();
|
||||
void LightableSwitch();
|
||||
void TreeThorns();
|
||||
void Fan();
|
||||
void AngryStatue();
|
||||
void PalaceArchway();
|
||||
void ObjectA2();
|
||||
void Cloud();
|
||||
void MinishLight();
|
||||
void FireballChain();
|
||||
void ObjectA6();
|
||||
void ObjectA7();
|
||||
void ObjectA8();
|
||||
void ObjectA9(Entity*);
|
||||
void WaterfallOpening(Entity*);
|
||||
void ObjectAB(Entity*);
|
||||
void ObjectA9();
|
||||
void WaterfallOpening();
|
||||
void ObjectAB();
|
||||
void FourElements();
|
||||
void ObjectAD(Entity*);
|
||||
void FloatingBlock(Entity*);
|
||||
void ObjectAF(Entity*);
|
||||
void MetalDoor(Entity*);
|
||||
void JailBars(Entity*);
|
||||
void ObjectB2(Entity*);
|
||||
void ObjectB3(Entity*);
|
||||
void ObjectB4(Entity*);
|
||||
void ObjectB5(Entity*);
|
||||
void ObjectB6(Entity*);
|
||||
void Well(Entity*);
|
||||
void ObjectAD();
|
||||
void FloatingBlock();
|
||||
void ObjectAF();
|
||||
void MetalDoor();
|
||||
void JailBars();
|
||||
void ObjectB2();
|
||||
void ObjectB3();
|
||||
void ObjectB4();
|
||||
void ObjectB5();
|
||||
void ObjectB6();
|
||||
void Well();
|
||||
void WindTribeTeleporter();
|
||||
void ObjectB9(Entity*);
|
||||
void GyorgBossObject(Entity*);
|
||||
void Windcrest(Entity*);
|
||||
void LitArea(Entity*);
|
||||
void ObjectBD(Entity*);
|
||||
void Pinwheel(Entity*);
|
||||
void ObjectBF(Entity*);
|
||||
void ObjectB9();
|
||||
void GyorgBossObject();
|
||||
void Windcrest();
|
||||
void LitArea();
|
||||
void ObjectBD();
|
||||
void Pinwheel();
|
||||
void ObjectBF();
|
||||
void EnemyItem();
|
||||
void ObjectC1();
|
||||
|
||||
|
|
|
@ -740,7 +740,7 @@ SECTIONS {
|
|||
src/object/pushableGrave.o(.text);
|
||||
src/object/stoneTablet.o(.text);
|
||||
src/object/lilypadSmall.o(.text);
|
||||
asm/object/object74.o(.text);
|
||||
src/object/object74.o(.text);
|
||||
src/object/bell.o(.text);
|
||||
src/object/macroDecorations.o(.text);
|
||||
asm/object/object79.o(.text);
|
||||
|
@ -1483,7 +1483,7 @@ SECTIONS {
|
|||
src/object/pushableGrave.o(.rodata);
|
||||
src/object/stoneTablet.o(.rodata);
|
||||
data/const/object/lilypadSmall.o(.rodata);
|
||||
data/const/object/object74.o(.rodata);
|
||||
src/object/object74.o(.rodata);
|
||||
data/const/object/bell.o(.rodata);
|
||||
data/animations/object/bell.o(.rodata);
|
||||
src/object/macroDecorations.o(.rodata);
|
||||
|
|
|
@ -310,7 +310,7 @@ void sub_080842D8(ChestSpawnerEntity* this) {
|
|||
if ((super->y.HALF.HI & 8) != 0) {
|
||||
index += 2;
|
||||
}
|
||||
sub_0801AF18((u8*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
|
||||
const Hitbox gUnk_0811F8A8 = { 0, -3, { 0, 0, 0, 0 }, 6, 6 };
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
extern void sub_080A0960(Entity*, u32);
|
||||
|
||||
extern void (*const gUnk_08124950[])(Entity*);
|
||||
extern u8 gUnk_08124960;
|
||||
extern u8 gUnk_0812497A;
|
||||
extern u16 gUnk_08124960[];
|
||||
extern u16 gUnk_0812497A[];
|
||||
|
||||
void JailBars(Entity* this) {
|
||||
gUnk_08124950[this->action](this);
|
||||
|
@ -49,11 +49,11 @@ void nullsub_127(Entity* this) {
|
|||
}
|
||||
|
||||
void sub_080A0960(Entity* this, u32 arg1) {
|
||||
u8* puVar1;
|
||||
u16* puVar1;
|
||||
|
||||
puVar1 = &gUnk_08124960;
|
||||
puVar1 = gUnk_08124960;
|
||||
if (arg1 == 1) {
|
||||
puVar1 = &gUnk_0812497A;
|
||||
puVar1 = gUnk_0812497A;
|
||||
}
|
||||
sub_0801AF18(puVar1, COORD_TO_TILE(this), 1);
|
||||
SetMultipleTiles(puVar1, COORD_TO_TILE(this), 1);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,116 @@
|
|||
/**
|
||||
* @file object74.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Object74 object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0x1e];
|
||||
/*0x86*/ u16 unk_86;
|
||||
} Object74Entity;
|
||||
|
||||
void sub_08097B84(Object74Entity*);
|
||||
void sub_08097BDC(Object74Entity*);
|
||||
void sub_08097C18(Object74Entity*);
|
||||
void sub_08097C20(Object74Entity*);
|
||||
void sub_08097C1C(Object74Entity*);
|
||||
void sub_08097CFC(Object74Entity*);
|
||||
bool32 sub_08097CB0(Object74Entity*);
|
||||
void sub_08097CB4(Object74Entity*);
|
||||
|
||||
const Hitbox gUnk_08123328 = { 0, 0, { 4, 0, 0, 4 }, 18, 18 };
|
||||
|
||||
void Object74(Object74Entity* this) {
|
||||
static void (*const gUnk_08123330[])(Object74Entity*) = {
|
||||
sub_08097B84, sub_08097BDC, sub_08097C18, sub_08097C20, sub_08097C1C,
|
||||
};
|
||||
gUnk_08123330[super->action](this);
|
||||
}
|
||||
|
||||
void sub_08097B84(Object74Entity* this) {
|
||||
super->action = 1;
|
||||
super->spritePriority.b0 = 7;
|
||||
super->hitbox = (Hitbox*)&gUnk_08123328;
|
||||
if ((this->unk_86 == 0xffff) || (CheckFlags(this->unk_86))) {
|
||||
super->spriteSettings.draw = 1;
|
||||
super->action = 4;
|
||||
sub_08097CFC(this);
|
||||
} else {
|
||||
sub_0805BC4C();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08097BDC(Object74Entity* this) {
|
||||
if (CheckFlags(this->unk_86)) {
|
||||
SetPlayerControl(CONTROL_1);
|
||||
gUnk_02034490.unk0 = 1;
|
||||
RequestPriorityDuration(super, 0x1e);
|
||||
if (sub_08097CB0(this) == FALSE) {
|
||||
sub_08097CB4(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08097C18(Object74Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08097C1C(Object74Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08097C20(Object74Entity* this) {
|
||||
u32 tmp;
|
||||
SetPriorityTimer(0x1e);
|
||||
sub_0800445C(super);
|
||||
CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
|
||||
if (--super->actionDelay == 0) {
|
||||
super->actionDelay = 8;
|
||||
tmp = ++super->field_0xf;
|
||||
gScreen.controls.alphaBlend = (((0x10 - tmp) * 0x100)) | tmp;
|
||||
if (gScreen.controls.alphaBlend == 0x10) {
|
||||
SetPlayerControl(CONTROL_ENABLED);
|
||||
gUnk_02034490.unk0 = 0;
|
||||
gScreen.controls.layerFXControl = 0;
|
||||
sub_08097CFC(this);
|
||||
super->action = 4;
|
||||
super->spriteRendering.alphaBlend = 0;
|
||||
SoundReq(SFX_SECRET);
|
||||
SetGlobalFlag(TINY_ENTRANCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_08097CB0(Object74Entity* this) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_08097CB4(Object74Entity* this) {
|
||||
super->action = 3;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->spriteRendering.alphaBlend = 1;
|
||||
super->actionDelay = 0x1e;
|
||||
super->field_0xf = 0;
|
||||
gScreen.controls.layerFXControl = 0xf40;
|
||||
gScreen.controls.alphaBlend = 0x1000;
|
||||
SoundReq(SFX_14A);
|
||||
}
|
||||
|
||||
void sub_08097CFC(Object74Entity* this) {
|
||||
static const u16 gUnk_08123344[] = { 16448, 65471, 16449, 65472, 16450, 65473, 16451, 65535, 16452, 0,
|
||||
16453, 1, 16454, 63, 16455, 64, 16456, 65, 65535 };
|
||||
static const u16 gUnk_0812336A[] = {
|
||||
16449, 65471, 16449, 65472, 16452, 65535, 16452, 0, 16455, 63, 16455, 64, 65535
|
||||
};
|
||||
if ((super->x.HALF.HI & 0xf) == 0) {
|
||||
SetMultipleTiles((u16*)gUnk_0812336A, COORD_TO_TILE(super), super->collisionLayer);
|
||||
} else {
|
||||
SetMultipleTiles((u16*)gUnk_08123344, COORD_TO_TILE(super), super->collisionLayer);
|
||||
}
|
||||
}
|
|
@ -78,7 +78,7 @@ void PushableGrave_Init(PushableGraveEntity* this) {
|
|||
super->hitbox = (Hitbox*)&gUnk_080FD570;
|
||||
SetTile(tileIndex, tilePosition, super->collisionLayer);
|
||||
if (super->type2 == 2) {
|
||||
sub_0801AF18((u8*)gUnk_081232C0, tilePosition, super->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232C0, tilePosition, super->collisionLayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,22 +15,17 @@ void StoneTablet(Entity* this) {
|
|||
}
|
||||
|
||||
void sub_080979CC(Entity* this) {
|
||||
static const u8 gUnk_081232EC[] = {
|
||||
0x22, 0x40, 0xFE, 0xFF, 0x22, 0x40, 0xFF, 0xFF, 0x22, 0x40, 0x0, 0x0, 0x22, 0x40, 0x1, 0x0, 0xFF, 0xFF,
|
||||
};
|
||||
|
||||
static const u8 gUnk_081232FE[] = {
|
||||
0x65, 0x40, 0xBF, 0xFF, 0x22, 0x40, 0xC0, 0xFF, 0x66, 0x40, 0xC1, 0xFF, 0x29,
|
||||
0x40, 0xFF, 0xFF, 0x26, 0x40, 0x0, 0x0, 0x2A, 0x40, 0x1, 0x0, 0xFF, 0xFF,
|
||||
};
|
||||
static const u16 gUnk_081232EC[] = { 0x4022, 0xfffe, 0x4022, 0xffff, 0x4022, 0x0, 0x4022, 0x1, 0xffff };
|
||||
static const u16 gUnk_081232FE[] = { 0x4065, 0xffbf, 0x4022, 0xffc0, 0x4066, 0xffc1, 0x4029,
|
||||
0xffff, 0x4026, 0x0, 0x402a, 0x1, 0xffff };
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
if (this->type == 3) {
|
||||
this->frameIndex = 0;
|
||||
sub_0801AF18(gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer);
|
||||
} else {
|
||||
this->frameIndex = this->type;
|
||||
sub_0801AF18(gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer);
|
||||
SetMultipleTiles((u16*)gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue