mirror of https://github.com/zeldaret/tmc.git
Decompile waterfallopening
This commit is contained in:
parent
d18fed1fb9
commit
ec8936d9ef
|
|
@ -1,360 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start WaterfallOpening
|
||||
WaterfallOpening: @ 0x0809FF68
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #0
|
||||
bne _0809F802
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _0809F824 @ =gUnk_08124868
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0x78
|
||||
strh r0, [r1]
|
||||
_0809F802:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0809F8BC
|
||||
movs r0, #0xff
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0809F8FE
|
||||
ldrb r2, [r4, #0xd]
|
||||
cmp r2, #1
|
||||
beq _0809F85A
|
||||
cmp r2, #1
|
||||
bgt _0809F828
|
||||
cmp r2, #0
|
||||
beq _0809F82E
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F824: .4byte gUnk_08124868
|
||||
_0809F828:
|
||||
cmp r2, #2
|
||||
beq _0809F88C
|
||||
b _0809F8AE
|
||||
_0809F82E:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x20
|
||||
strh r0, [r1]
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xe]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
strb r1, [r4, #0xd]
|
||||
strb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
movs r1, #0xc6
|
||||
lsls r1, r1, #1
|
||||
b _0809F87E
|
||||
_0809F85A:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x2d
|
||||
strh r0, [r1]
|
||||
strb r2, [r4, #0xe]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xd]
|
||||
strb r0, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _0809F888 @ =0x0000018D
|
||||
_0809F87E:
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F888: .4byte 0x0000018D
|
||||
_0809F88C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r1, _0809F8B8 @ =gMenu
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #0x73
|
||||
bl SoundReq
|
||||
_0809F8AE:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
b _0809F8FE
|
||||
.align 2, 0
|
||||
_0809F8B8: .4byte gMenu
|
||||
_0809F8BC:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0809F8F8
|
||||
cmp r0, #2
|
||||
bne _0809F8F8
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _0809F8F8
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _0809F900 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0x39
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0809F8F8:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
_0809F8FE:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0809F900: .4byte gRoomControls
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #0
|
||||
bne _0809FFA2
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _0809FFC4 @ =gUnk_08124868
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0x78
|
||||
strh r0, [r1]
|
||||
_0809FFA2:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _080A0068
|
||||
movs r0, #0xff
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _080A00AA
|
||||
ldrb r2, [r4, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0006
|
||||
cmp r2, #1
|
||||
bgt _0809FFC8
|
||||
cmp r2, #0
|
||||
beq _0809FFCE
|
||||
b _080A005A
|
||||
.align 2, 0
|
||||
_0809FFC4: .4byte gUnk_08124868
|
||||
_0809FFC8:
|
||||
cmp r2, #2
|
||||
beq _080A0038
|
||||
b _080A005A
|
||||
_0809FFCE:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A005A
|
||||
movs r0, #0x20
|
||||
strh r0, [r1]
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xe]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
strb r1, [r4, #0xd]
|
||||
strb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
movs r1, #0xc6
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
movs r0, #0xf6
|
||||
bl SoundReq
|
||||
b _080A005A
|
||||
_080A0006:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A005A
|
||||
movs r0, #0x2d
|
||||
strh r0, [r1]
|
||||
strb r2, [r4, #0xe]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xd]
|
||||
strb r0, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _080A0034 @ =0x0000018D
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
b _080A005A
|
||||
.align 2, 0
|
||||
_080A0034: .4byte 0x0000018D
|
||||
_080A0038:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080A005A
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r1, _080A0064 @ =gMenu
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #0x73
|
||||
bl SoundReq
|
||||
_080A005A:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
b _080A00AA
|
||||
.align 2, 0
|
||||
_080A0064: .4byte gMenu
|
||||
_080A0068:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _080A00A4
|
||||
cmp r0, #2
|
||||
bne _080A00A4
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _080A00A4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _080A00AC @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0x39
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_080A00A4:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
_080A00AA:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A00AC: .4byte gRoomControls
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A00B0
|
||||
sub_080A00B0: @ 0x080A00B0
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A00DA
|
||||
movs r0, #8
|
||||
strb r0, [r2, #0xe]
|
||||
ldr r1, _080A00DC @ =gUnk_08124868
|
||||
ldrb r0, [r2, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r2, #0xf]
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1, r0
|
||||
strb r0, [r2, #0x1e]
|
||||
adds r1, #1
|
||||
movs r0, #3
|
||||
ands r1, r0
|
||||
strb r1, [r2, #0xf]
|
||||
_080A00DA:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A00DC: .4byte gUnk_08124868
|
||||
|
|
@ -45194,11 +45194,6 @@
|
|||
"start": 1198176,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "waterfallOpening/gUnk_08124868.bin",
|
||||
"start": 1198184,
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "animations/gSpriteAnimations_ObjectAB_0.bin",
|
||||
"start": 1198200,
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08124868:: @ 08124868
|
||||
.incbin "waterfallOpening/gUnk_08124868.bin"
|
||||
|
|
@ -796,7 +796,7 @@ SECTIONS {
|
|||
asm/object/objectA7.o(.text);
|
||||
src/object/objectA8.o(.text);
|
||||
asm/object/objectA9.o(.text);
|
||||
asm/object/waterfallOpening.o(.text);
|
||||
src/object/waterfallOpening.o(.text);
|
||||
asm/object/objectAB.o(.text);
|
||||
src/object/fourElements.o(.text);
|
||||
asm/object/objectAD.o(.text);
|
||||
|
|
@ -1551,7 +1551,7 @@ SECTIONS {
|
|||
data/animations/object/objectA6.o(.rodata);
|
||||
src/object/objectA8.o(.rodata);
|
||||
data/const/object/objectA9.o(.rodata);
|
||||
data/const/object/waterfallOpening.o(.rodata);
|
||||
src/object/waterfallOpening.o(.rodata);
|
||||
data/const/object/objectAB.o(.rodata);
|
||||
data/animations/object/objectAB.o(.rodata);
|
||||
src/object/fourElements.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,88 @@
|
|||
#define NENT_DEPRECATED
|
||||
#include "entity.h"
|
||||
#include "menu.h"
|
||||
#include "room.h"
|
||||
#include "flags.h"
|
||||
#include "functions.h"
|
||||
#include "sound.h"
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
s16 unk68;
|
||||
} WaterfallOpeningEntity;
|
||||
|
||||
const u8 WaterfallOpening_FrameIndices[] = { 0, 4, 8, 0 };
|
||||
|
||||
void sub_080A00B0(WaterfallOpeningEntity*);
|
||||
|
||||
void WaterfallOpening(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->actionDelay = 8;
|
||||
this->field_0xf = 0;
|
||||
this->spriteRendering.b3 = 3;
|
||||
this->spritePriority.b0 = 7;
|
||||
this->frameIndex = WaterfallOpening_FrameIndices[this->type];
|
||||
((WaterfallOpeningEntity*)this)->unk68 = 0x78;
|
||||
}
|
||||
|
||||
if (this->type2 != 0) {
|
||||
if (CheckRoomFlag(0xff)) {
|
||||
switch (this->subAction) {
|
||||
case 0:
|
||||
if (--((WaterfallOpeningEntity*)this)->unk68 == 0) {
|
||||
((WaterfallOpeningEntity*)this)->unk68 = 0x20;
|
||||
this->actionDelay = 1;
|
||||
this->field_0xf = 0;
|
||||
this->subAction = 1;
|
||||
this->type = 1;
|
||||
sub_080AE068(this);
|
||||
LoadFixedGFX(this, 0x18c);
|
||||
#ifndef EU
|
||||
SoundReq(SFX_EVAPORATE);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (--((WaterfallOpeningEntity*)this)->unk68 == 0) {
|
||||
((WaterfallOpeningEntity*)this)->unk68 = 0x2d;
|
||||
this->actionDelay = 1;
|
||||
this->subAction = 2;
|
||||
this->type = 2;
|
||||
sub_080AE068(this);
|
||||
LoadFixedGFX(this, 0x18d);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (--((WaterfallOpeningEntity*)this)->unk68 == 0) {
|
||||
this->subAction = 3;
|
||||
gMenu.overlayType++;
|
||||
SoundReq(SFX_SECRET_BIG);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
sub_080A00B0((WaterfallOpeningEntity*)this);
|
||||
}
|
||||
} else {
|
||||
switch (this->type) {
|
||||
case 0:
|
||||
break;
|
||||
case 2:
|
||||
if ((this->subAction == 0)) {
|
||||
this->subAction = 1;
|
||||
SetTileType(0x39, COORD_TO_TILE(this), 1);
|
||||
}
|
||||
}
|
||||
|
||||
sub_080A00B0((WaterfallOpeningEntity*)this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A00B0(WaterfallOpeningEntity* this) {
|
||||
if (--super->actionDelay == 0) {
|
||||
super->actionDelay = 8;
|
||||
super->frameIndex = super->field_0xf + WaterfallOpening_FrameIndices[super->type];
|
||||
super->field_0xf = (super->field_0xf + 1) & 3;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue