mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Merge branch 'main' into gravity_funcs
This commit is contained in:
commit
0e62b5f33f
|
|
@ -463,7 +463,7 @@
|
|||
.public sub_02039218
|
||||
.public sub_0203931C
|
||||
.public sub_0204B028
|
||||
.public sub_0204C9F4
|
||||
.public SetSpecialEpOpenOld
|
||||
.public sub_0204CDB8
|
||||
.public sub_0204E154
|
||||
.public sub_0204E19C
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
#pragma once
|
||||
.public LoadScriptVariableValueAtIndex
|
||||
.public SaveScriptVariableValueAtIndex
|
||||
.public ScriptVariablesEqual
|
||||
|
|
@ -481,8 +481,8 @@
|
|||
.public sub_0204B018
|
||||
.public IsStoryBeforePoint
|
||||
.public GetDebugSpecialEpisodeNumber
|
||||
.public sub_0204C978
|
||||
.public sub_0204CA1C
|
||||
.public SetSpecialEpisodeOpen
|
||||
.public IsSpecialEpisodeBeaten
|
||||
.public sub_0204D018
|
||||
.public sub_0204E210
|
||||
.public sub_0204E6FC
|
||||
|
|
|
|||
|
|
@ -334,9 +334,9 @@
|
|||
.public sub_0204AE60
|
||||
.public GetDebugSpecialEpisodeNumber
|
||||
.public SetDebugSpecialEpisodeNumber
|
||||
.public sub_0204C9A0
|
||||
.public sub_0204C9C8
|
||||
.public sub_0204CA1C
|
||||
.public IsSpecialEpisodeOpenMismatch
|
||||
.public IsSpecialEpOpenOld
|
||||
.public IsSpecialEpisodeBeaten
|
||||
.public sub_0204DF54
|
||||
.public sub_0204DFB0
|
||||
.public sub_0204E02C
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@
|
|||
.public sub_0204A018
|
||||
.public sub_0204A1CC
|
||||
.public sub_0204AE60
|
||||
.public sub_0204C978
|
||||
.public SetSpecialEpisodeOpen
|
||||
.public sub_0204E210
|
||||
.public sub_02050974
|
||||
.public sub_020509BC
|
||||
|
|
|
|||
|
|
@ -63,6 +63,6 @@
|
|||
.public sub_02032684
|
||||
.public sub_02032984
|
||||
.public sub_02033758
|
||||
.public sub_0204CA1C
|
||||
.public IsSpecialEpisodeBeaten
|
||||
.public sub_02052060
|
||||
.public UpdateWindow
|
||||
|
|
|
|||
|
|
@ -638,7 +638,7 @@
|
|||
.public IsStoryAtPoint
|
||||
.public IsStoryAtOrAfterPoint
|
||||
.public IsStoryAtOrAfterPointStrict
|
||||
.public sub_0204CA48
|
||||
.public SetSpecialEpisodeBeaten
|
||||
.public sub_0204CB2C
|
||||
.public sub_0204CDE8
|
||||
.public sub_0204CE48
|
||||
|
|
|
|||
|
|
@ -14613,7 +14613,7 @@ InitSpecialEpisodeHero: ; 0x020484E8
|
|||
bl sub_0204CDB8
|
||||
mov r0, r4
|
||||
mov r1, #1
|
||||
bl sub_0204C9F4
|
||||
bl SetSpecialEpOpenOld
|
||||
cmp r4, #4
|
||||
addls pc, pc, r4, lsl #2
|
||||
b _02048578
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "main_0204C94C.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start IsSpecialEpisodeOpen
|
||||
IsSpecialEpisodeOpen: ; 0x0204C94C
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x4b
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsSpecialEpisodeOpen
|
||||
|
||||
arm_func_start sub_0204C978
|
||||
sub_0204C978: ; 0x0204C978
|
||||
ldr ip, _0204C99C ; =SaveScriptVariableValueAtIndex
|
||||
cmp r1, #0
|
||||
movne r3, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
moveq r3, #0
|
||||
mov r0, #0
|
||||
mov r1, #0x4b
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0204C99C: .word SaveScriptVariableValueAtIndex
|
||||
arm_func_end sub_0204C978
|
||||
|
||||
arm_func_start sub_0204C9A0
|
||||
sub_0204C9A0: ; 0x0204C9A0
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0
|
||||
mov r1, #0x4b
|
||||
mov r2, #0x4c
|
||||
bl ScriptVariablesEqual
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204C9A0
|
||||
|
||||
arm_func_start sub_0204C9C8
|
||||
sub_0204C9C8: ; 0x0204C9C8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x4c
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204C9C8
|
||||
|
||||
arm_func_start sub_0204C9F4
|
||||
sub_0204C9F4: ; 0x0204C9F4
|
||||
ldr ip, _0204CA18 ; =SaveScriptVariableValueAtIndex
|
||||
cmp r1, #0
|
||||
movne r3, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
moveq r3, #0
|
||||
mov r0, #0
|
||||
mov r1, #0x4c
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0204CA18: .word SaveScriptVariableValueAtIndex
|
||||
arm_func_end sub_0204C9F4
|
||||
|
||||
arm_func_start sub_0204CA1C
|
||||
sub_0204CA1C: ; 0x0204CA1C
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x4d
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204CA1C
|
||||
|
||||
arm_func_start sub_0204CA48
|
||||
sub_0204CA48: ; 0x0204CA48
|
||||
ldr ip, _0204CA6C ; =SaveScriptVariableValueAtIndex
|
||||
cmp r1, #0
|
||||
movne r3, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
moveq r3, #0
|
||||
mov r0, #0
|
||||
mov r1, #0x4d
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0204CA6C: .word SaveScriptVariableValueAtIndex
|
||||
arm_func_end sub_0204CA48
|
||||
|
|
@ -11467,7 +11467,7 @@ _02062694: ; jump table
|
|||
b _020626AC ; case 5
|
||||
_020626AC:
|
||||
mov r0, #0
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
beq _02062754
|
||||
|
|
@ -18505,7 +18505,7 @@ _020680D0:
|
|||
cmp r0, #5
|
||||
bne _02068158
|
||||
mov r0, #0
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
bne _0206812C
|
||||
bl sub_020692B4
|
||||
|
|
@ -20987,7 +20987,7 @@ _0206A1B0:
|
|||
bl InitPreprocessorArgs
|
||||
mov r0, #2
|
||||
mov r1, #1
|
||||
bl sub_0204C978
|
||||
bl SetSpecialEpisodeOpen
|
||||
add r0, sp, #0x7e
|
||||
mov r1, #0x2a
|
||||
bl MemZero
|
||||
|
|
|
|||
|
|
@ -9890,7 +9890,7 @@ _023313FC:
|
|||
ldr r0, [r0, #0x114]
|
||||
cmp r0, #1
|
||||
ble _02331480
|
||||
bl sub_0204C9A0
|
||||
bl IsSpecialEpisodeOpenMismatch
|
||||
cmp r0, #0
|
||||
beq _0233145C
|
||||
cmp r4, #0
|
||||
|
|
@ -11173,12 +11173,12 @@ ov01_02332580: ; 0x02332580
|
|||
ldr r4, _02332634 ; =ov01_0233B678
|
||||
beq _023325E4
|
||||
mov r0, r7
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
ldrne r8, _02332638 ; =ov01_0233B6A4
|
||||
bne _023325D8
|
||||
mov r0, r7
|
||||
bl sub_0204C9C8
|
||||
bl IsSpecialEpOpenOld
|
||||
cmp r0, #0
|
||||
ldreq r8, _0233263C ; =ov01_0233B6B0
|
||||
_023325D8:
|
||||
|
|
@ -11766,7 +11766,7 @@ _02332D4C:
|
|||
b _02332ED4
|
||||
_02332D5C:
|
||||
bl GetDebugSpecialEpisodeNumber
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
beq _02332DAC
|
||||
ldr r0, _02332EDC ; =ov01_0233C184
|
||||
|
|
@ -12398,7 +12398,7 @@ _023335C4:
|
|||
mvn r5, #1
|
||||
_023335D0:
|
||||
mov r0, r7
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
beq _02333604
|
||||
mov r0, r7
|
||||
|
|
|
|||
|
|
@ -600,7 +600,7 @@ _0233D184:
|
|||
_0233D1CC:
|
||||
mov r0, #2
|
||||
mov r1, #1
|
||||
bl sub_0204C978
|
||||
bl SetSpecialEpisodeOpen
|
||||
#ifdef NORTH_AMERICA
|
||||
mov r0, #0x1c
|
||||
add r1, r0, #0x3780
|
||||
|
|
@ -1977,7 +1977,7 @@ _0233E418:
|
|||
ldr r2, [r0]
|
||||
mov r0, #2
|
||||
strb r1, [r2, #0x21c]
|
||||
bl sub_0204C978
|
||||
bl SetSpecialEpisodeOpen
|
||||
ldr r1, _0233E930 ; =0x000037A5
|
||||
mov r0, #0x1c
|
||||
bl ov06_0233CDC8
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ _0233CAEC:
|
|||
b _0233CB90
|
||||
_0233CB38:
|
||||
ldr r0, [r7]
|
||||
bl sub_0204CA1C
|
||||
bl IsSpecialEpisodeBeaten
|
||||
cmp r0, #0
|
||||
bne _0233CB8C
|
||||
ldr r2, [sb]
|
||||
|
|
|
|||
|
|
@ -3313,7 +3313,7 @@ _022DEF8C: ; 0x022DEF8C
|
|||
blt _022DEFC0
|
||||
sub r0, r4, #0x3e8
|
||||
mov r1, #1
|
||||
bl sub_0204CA48
|
||||
bl SetSpecialEpisodeBeaten
|
||||
ldr r0, _022DFE08 ; =ov11_02316B0C
|
||||
sub r1, r4, #0x3e8
|
||||
ldrb r0, [r0, r1]
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
#ifndef PMDSKY_MAIN_0204C938_H
|
||||
#define PMDSKY_MAIN_0204C938_H
|
||||
|
||||
// Gets the special episode type from the EXECUTE_SPECIAL_EPISODE_TYPE script variable.
|
||||
s32 GetExecuteSpecialEpisodeType();
|
||||
|
||||
#endif //PMDSKY_MAIN_0204C938_H
|
||||
|
|
@ -38,7 +38,7 @@ s32 LoadScriptVariableValueSum(union script_var_value sv_local[], const enum scr
|
|||
void LoadScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s32 num_bytes);
|
||||
void LoadScriptVariableValueString(const enum script_var_id sv_id, u8* result, u8 num_bytes);
|
||||
void SaveScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s32 num_bytes);
|
||||
s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2);
|
||||
bool8 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2);
|
||||
s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation);
|
||||
bool8 CompareScriptVariables(s32 param_1, s32 param_2, enum compare_operation operation);
|
||||
s32 CalcScriptVariablesVeneer(s32 param_1, s32 param_2, enum script_calc_operation operation);
|
||||
|
|
|
|||
|
|
@ -5,5 +5,14 @@ s32 GetSpecialEpisodeType();
|
|||
void SetSpecialEpisodeType(u32 type);
|
||||
s32 GetDebugSpecialEpisodeNumber();
|
||||
void SetDebugSpecialEpisodeNumber(s32 num);
|
||||
// Gets the special episode type from the EXECUTE_SPECIAL_EPISODE_TYPE script variable.
|
||||
s32 GetExecuteSpecialEpisodeType();
|
||||
bool8 IsSpecialEpisodeOpen(u32 idx);
|
||||
void SetSpecialEpisodeOpen(u32 idx, u32 episode_open);
|
||||
bool8 IsSpecialEpisodeOpenMismatch();
|
||||
bool8 IsSpecialEpOpenOld(u32 idx);
|
||||
void SetSpecialEpOpenOld(u32 idx, u32 val);
|
||||
bool8 IsSpecialEpisodeBeaten(u32 idx);
|
||||
void SetSpecialEpisodeBeaten(u32 idx, u32 special_ep_beaten);
|
||||
|
||||
#endif //PMDSKY_SCRIPTING_H
|
||||
|
|
|
|||
2
main.lsf
2
main.lsf
|
|
@ -84,8 +84,6 @@ Static main
|
|||
Object asm/main_rodata_0209CECC.o
|
||||
Object src/story_progress.o
|
||||
Object src/special_episode.o
|
||||
Object src/main_0204C938.o
|
||||
Object asm/main_0204C94C.o
|
||||
Object src/dungeon_recruitment_3.o
|
||||
Object asm/main_0204CA94.o
|
||||
Object src/main_0204CB94.o
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
#include "main_0200EDC0.h"
|
||||
#include "item.h"
|
||||
#include "main_0204C938.h"
|
||||
#include "main_0204CB94.h"
|
||||
#include "main_020517D4.h"
|
||||
#include "script_variable.h"
|
||||
#include "special_episode.h"
|
||||
|
||||
extern struct bag_items *BAG_ITEMS_PTR_MIRROR;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
#include "main_0204C938.h"
|
||||
#include "script_variable.h"
|
||||
|
||||
s32 GetExecuteSpecialEpisodeType()
|
||||
{
|
||||
return LoadScriptVariableValue(0, VAR_EXECUTE_SPECIAL_EPISODE_TYPE);
|
||||
}
|
||||
|
|
@ -360,7 +360,7 @@ void SaveScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s3
|
|||
}
|
||||
}
|
||||
|
||||
s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2)
|
||||
bool8 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2)
|
||||
{
|
||||
struct script_var_raw script_var_raw_1, script_var_raw_2;
|
||||
|
||||
|
|
@ -372,11 +372,11 @@ s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_
|
|||
for(int idx = 0; idx < n_values; idx++) {
|
||||
if (LoadScriptVariableValueAtIndex(sv_val_ptr_local, sv_id_1, idx) !=
|
||||
LoadScriptVariableValueAtIndex(sv_val_ptr_local, sv_id_2, idx)) {
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation)
|
||||
|
|
|
|||
|
|
@ -23,3 +23,83 @@ void SetDebugSpecialEpisodeNumber(s32 num)
|
|||
{
|
||||
DEBUG_SPECIAL_EPISODE_NUMBER = num;
|
||||
}
|
||||
|
||||
s32 GetExecuteSpecialEpisodeType()
|
||||
{
|
||||
return LoadScriptVariableValue(0, VAR_EXECUTE_SPECIAL_EPISODE_TYPE);
|
||||
}
|
||||
|
||||
bool8 IsSpecialEpisodeOpen(u32 idx)
|
||||
{
|
||||
s32 val = LoadScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_OPEN, idx);
|
||||
return val != 0;
|
||||
}
|
||||
|
||||
void SetSpecialEpisodeOpen(u32 idx, u32 episode_open)
|
||||
{
|
||||
s32 val;
|
||||
if(episode_open != FALSE) {
|
||||
val = TRUE;
|
||||
} else {
|
||||
val = FALSE;
|
||||
}
|
||||
|
||||
SaveScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_OPEN, idx, val);
|
||||
}
|
||||
|
||||
bool8 IsSpecialEpisodeOpenMismatch()
|
||||
{
|
||||
u32 ret;
|
||||
bool8 result = ScriptVariablesEqual(0, VAR_SPECIAL_EPISODE_OPEN, VAR_SPECIAL_EPISODE_OPEN_OLD);
|
||||
if(result == FALSE)
|
||||
{
|
||||
ret = TRUE;
|
||||
} else {
|
||||
ret = FALSE;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool8 IsSpecialEpOpenOld(u32 idx)
|
||||
{
|
||||
s32 val = LoadScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_OPEN_OLD, idx);
|
||||
if(val == 0) {
|
||||
return FALSE;
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void SetSpecialEpOpenOld(u32 idx, u32 episode_open)
|
||||
{
|
||||
s32 new_val;
|
||||
if(episode_open == 0) {
|
||||
new_val = 0;
|
||||
} else {
|
||||
new_val = 1;
|
||||
}
|
||||
SaveScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_OPEN_OLD, idx, new_val);
|
||||
}
|
||||
|
||||
bool8 IsSpecialEpisodeBeaten(u32 idx)
|
||||
{
|
||||
s32 val = LoadScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_CONQUEST, idx);
|
||||
if(val == 0) {
|
||||
return FALSE;
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void SetSpecialEpisodeBeaten(u32 idx, u32 special_ep_beaten)
|
||||
{
|
||||
s32 new_val;
|
||||
if(special_ep_beaten == 0)
|
||||
{
|
||||
new_val = 0;
|
||||
} else {
|
||||
new_val = 1;
|
||||
}
|
||||
SaveScriptVariableValueAtIndex(0, VAR_SPECIAL_EPISODE_CONQUEST, idx, new_val);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user