mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-30 22:27:51 -05:00
Decomped GravityIsActive
This commit is contained in:
@@ -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
|
||||
|
||||
10
asm/include/overlay_29_023383A8.inc
Normal file
10
asm/include/overlay_29_023383A8.inc
Normal 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
|
||||
@@ -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
124
asm/overlay_29_023383A8.s
Normal 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
|
||||
8
include/overlay_29_02338390.h
Normal file
8
include/overlay_29_02338390.h
Normal 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
|
||||
2
main.lsf
2
main.lsf
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
9
src/overlay_29_02338390.c
Normal file
9
src/overlay_29_02338390.c
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user