Decomped GravityIsActive

This commit is contained in:
AnonymousRandomPerson
2025-05-31 23:11:20 -04:00
parent 6ac55770bd
commit 53abd71c63
8 changed files with 160 additions and 150 deletions

View File

@@ -1,30 +1,23 @@
#pragma once
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DetermineMonsterShadow
.public DetermineTileWalkableNeighbors
.public DIRECTIONS_XY
.public DrawMinimapTile
.public DUNGEON_PTR
.public DungeonRandInt
.public DungeonRandRange
.public EntityIsValid__02337CA8
.public GetMonsterIdFromSpawnEntry
.public GetTile
.public GetTileSafe
.public GetVictoriesOnOneFloor
.public HiddenStairsTrigger
.public IqSkillIsEnabled
.public LogMessageByIdWithPopupCheckUser
.public MemAlloc
.public MemFree
.public MemZero
.public ov10_022C6327
.public ov29_022E66C4
.public ov29_022EDEDC
.public ov29_022FAFD4
.public ov29_02306D54
.public ov29_02336694
.public PositionIsOnHiddenStairs
.public RandInt
.public SECONDARY_TERRAIN_TYPES
.public SetVictoriesOnOneFloor
.public UpdateTrapsVisibility
.public ov10_022C6327
.public ov29_022E66C4
.public ov29_022FAFD4
.public ov29_02336694

View File

@@ -0,0 +1,10 @@
#pragma once
.public DUNGEON_PTR
.public EntityIsValid__02337CA8
.public GetVictoriesOnOneFloor
.public HiddenStairsTrigger
.public LogMessageByIdWithPopupCheckUser
.public PositionIsOnHiddenStairs
.public SetVictoriesOnOneFloor
.public ov29_022EDEDC
.public ov29_02306D54

View File

@@ -559,138 +559,3 @@ ResetGravity: ; 0x0233836C
_02338388: .word DUNGEON_PTR
_0233838C: .word MemZero
arm_func_end ResetGravity
arm_func_start GravityIsActive
GravityIsActive: ; 0x02338390
ldr r0, _023383A4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x12000
#ifdef JAPAN
ldrb r0, [r0, #0xa58]
#else
ldrb r0, [r0, #0xafc]
#endif
bx lr
.align 2, 0
_023383A4: .word DUNGEON_PTR
arm_func_end GravityIsActive
arm_func_start ov29_023383A8
ov29_023383A8: ; 0x023383A8
ldr ip, _023383B4 ; =LogMessageByIdWithPopupCheckUser
ldr r1, _023383B8 ; =0x00000D8D
bx ip
.align 2, 0
_023383B4: .word LogMessageByIdWithPopupCheckUser
#ifdef JAPAN
_023383B8: .word 0x00000ACD
#else
_023383B8: .word 0x00000D8D
#endif
arm_func_end ov29_023383A8
arm_func_start TryActivateGravity
TryActivateGravity: ; 0x023383BC
stmdb sp!, {r4, lr}
mov r4, r0
bl EntityIsValid__02337CA8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, _02338424 ; =DUNGEON_PTR
ldr r0, [r0]
add r2, r0, #0x12000
#ifdef JAPAN
ldrb r0, [r2, #0xa58]
#else
ldrb r0, [r2, #0xafc]
#endif
cmp r0, #0
beq _02338400
ldr r1, _02338428 ; =0x00000C06
mov r0, r4
bl LogMessageByIdWithPopupCheckUser
mov r0, #0
ldmia sp!, {r4, pc}
_02338400:
ldr r1, _0233842C ; =0x00000C05
mov r3, #1
mov r0, r4
#ifdef JAPAN
strb r3, [r2, #0xa58]
#else
strb r3, [r2, #0xafc]
#endif
bl LogMessageByIdWithPopupCheckUser
mov r0, r4
bl ov29_02306D54
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_02338424: .word DUNGEON_PTR
#ifdef JAPAN
_02338428: .word 0x00000945
_0233842C: .word 0x00000944
#else
_02338428: .word 0x00000C06
_0233842C: .word 0x00000C05
#endif
arm_func_end TryActivateGravity
arm_func_start ov29_02338430
ov29_02338430: ; 0x02338430
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #1
bl ov29_022EDEDC
mov r0, r4
bl PositionIsOnHiddenStairs
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, #1
bl HiddenStairsTrigger
ldmia sp!, {r4, pc}
arm_func_end ov29_02338430
arm_func_start ov29_0233845C
ov29_0233845C: ; 0x0233845C
ldr r1, _02338474 ; =DUNGEON_PTR
ldr r0, _02338478 ; =0x00012AFE
ldr r1, [r1]
mov r2, #0
strh r2, [r1, r0]
bx lr
.align 2, 0
_02338474: .word DUNGEON_PTR
#ifdef JAPAN
_02338478: .word 0x00012A5A
#else
_02338478: .word 0x00012AFE
#endif
arm_func_end ov29_0233845C
arm_func_start ov29_0233847C
ov29_0233847C: ; 0x0233847C
stmdb sp!, {r4, lr}
ldr r1, _023384B8 ; =DUNGEON_PTR
ldr r0, _023384BC ; =0x00012AFE
ldr r3, [r1]
ldrsh r2, [r3, r0]
add r2, r2, #1
strh r2, [r3, r0]
ldr r1, [r1]
ldrsh r4, [r1, r0]
bl GetVictoriesOnOneFloor
cmp r4, r0
ldmleia sp!, {r4, pc}
mov r0, r4
bl SetVictoriesOnOneFloor
ldmia sp!, {r4, pc}
.align 2, 0
_023384B8: .word DUNGEON_PTR
#ifdef JAPAN
_023384BC: .word 0x00012A5A
#else
_023384BC: .word 0x00012AFE
#endif
arm_func_end ov29_0233847C

124
asm/overlay_29_023383A8.s Normal file
View File

@@ -0,0 +1,124 @@
.include "asm/macros.inc"
.include "overlay_29_023383A8.inc"
.text
arm_func_start ov29_023383A8
ov29_023383A8: ; 0x023383A8
ldr ip, _023383B4 ; =LogMessageByIdWithPopupCheckUser
ldr r1, _023383B8 ; =0x00000D8D
bx ip
.align 2, 0
_023383B4: .word LogMessageByIdWithPopupCheckUser
#ifdef JAPAN
_023383B8: .word 0x00000ACD
#else
_023383B8: .word 0x00000D8D
#endif
arm_func_end ov29_023383A8
arm_func_start TryActivateGravity
TryActivateGravity: ; 0x023383BC
stmdb sp!, {r4, lr}
mov r4, r0
bl EntityIsValid__02337CA8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, _02338424 ; =DUNGEON_PTR
ldr r0, [r0]
add r2, r0, #0x12000
#ifdef JAPAN
ldrb r0, [r2, #0xa58]
#else
ldrb r0, [r2, #0xafc]
#endif
cmp r0, #0
beq _02338400
ldr r1, _02338428 ; =0x00000C06
mov r0, r4
bl LogMessageByIdWithPopupCheckUser
mov r0, #0
ldmia sp!, {r4, pc}
_02338400:
ldr r1, _0233842C ; =0x00000C05
mov r3, #1
mov r0, r4
#ifdef JAPAN
strb r3, [r2, #0xa58]
#else
strb r3, [r2, #0xafc]
#endif
bl LogMessageByIdWithPopupCheckUser
mov r0, r4
bl ov29_02306D54
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_02338424: .word DUNGEON_PTR
#ifdef JAPAN
_02338428: .word 0x00000945
_0233842C: .word 0x00000944
#else
_02338428: .word 0x00000C06
_0233842C: .word 0x00000C05
#endif
arm_func_end TryActivateGravity
arm_func_start ov29_02338430
ov29_02338430: ; 0x02338430
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #1
bl ov29_022EDEDC
mov r0, r4
bl PositionIsOnHiddenStairs
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, #1
bl HiddenStairsTrigger
ldmia sp!, {r4, pc}
arm_func_end ov29_02338430
arm_func_start ov29_0233845C
ov29_0233845C: ; 0x0233845C
ldr r1, _02338474 ; =DUNGEON_PTR
ldr r0, _02338478 ; =0x00012AFE
ldr r1, [r1]
mov r2, #0
strh r2, [r1, r0]
bx lr
.align 2, 0
_02338474: .word DUNGEON_PTR
#ifdef JAPAN
_02338478: .word 0x00012A5A
#else
_02338478: .word 0x00012AFE
#endif
arm_func_end ov29_0233845C
arm_func_start ov29_0233847C
ov29_0233847C: ; 0x0233847C
stmdb sp!, {r4, lr}
ldr r1, _023384B8 ; =DUNGEON_PTR
ldr r0, _023384BC ; =0x00012AFE
ldr r3, [r1]
ldrsh r2, [r3, r0]
add r2, r2, #1
strh r2, [r3, r0]
ldr r1, [r1]
ldrsh r4, [r1, r0]
bl GetVictoriesOnOneFloor
cmp r4, r0
ldmleia sp!, {r4, pc}
mov r0, r4
bl SetVictoriesOnOneFloor
ldmia sp!, {r4, pc}
.align 2, 0
_023384B8: .word DUNGEON_PTR
#ifdef JAPAN
_023384BC: .word 0x00012A5A
#else
_023384BC: .word 0x00012AFE
#endif
arm_func_end ov29_0233847C

View File

@@ -0,0 +1,8 @@
#ifndef PMDSKY_OVERLAY_29_02338390_H
#define PMDSKY_OVERLAY_29_02338390_H
#include "util.h"
bool8 GravityIsActive();
#endif //PMDSKY_OVERLAY_29_02338390_H

View File

@@ -449,6 +449,8 @@ Overlay OVY_29
Object asm/overlay_29_02336164.o
Object src/overlay_29_02337CA8.o
Object asm/overlay_29_02337CCC.o
Object src/overlay_29_02338390.o
Object asm/overlay_29_023383A8.o
Object src/overlay_29_02338548.o
Object asm/overlay_29_02338560.o
Object src/overlay_29_02338604.o

View File

@@ -1,8 +1,7 @@
#include "overlay_29_02318A4C.h"
#include "dungeon_util_static.h"
#include "overlay_29_02315118.h"
extern bool8 GravityIsActive();
#include "overlay_29_02338390.h"
bool8 IsFloating(struct entity *entity)
{

View File

@@ -0,0 +1,9 @@
#include "overlay_29_02338390.h"
#include "dungeon.h"
extern struct dungeon *DUNGEON_PTR[];
bool8 GravityIsActive()
{
return DUNGEON_PTR[0]->gravity;
}