Decompile Object74

This commit is contained in:
octorock 2022-02-28 23:35:23 +01:00
parent 241c0312d9
commit cffa1024ca
12 changed files with 289 additions and 498 deletions

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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"

View File

@ -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*);

View File

@ -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();

View File

@ -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);

View File

@ -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 };

View File

@ -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);
}

116
src/object/object74.c Normal file
View File

@ -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);
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}