mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
Made specialTripleJump a field of MarioState instead of a global
This commit is contained in:
parent
58282f7752
commit
71105833c5
10 changed files with 11 additions and 9 deletions
|
@ -665,6 +665,7 @@
|
|||
--- @field public slideVelZ number
|
||||
--- @field public slideYaw integer
|
||||
--- @field public spawnInfo SpawnInfo
|
||||
--- @field public specialTripleJump integer
|
||||
--- @field public splineKeyframeFraction number
|
||||
--- @field public splineState integer
|
||||
--- @field public squishTimer integer
|
||||
|
|
|
@ -956,6 +956,7 @@
|
|||
| slideVelZ | `number` | |
|
||||
| slideYaw | `integer` | |
|
||||
| spawnInfo | [SpawnInfo](structs.md#SpawnInfo) | |
|
||||
| specialTripleJump | `integer` | |
|
||||
| splineKeyframeFraction | `number` | |
|
||||
| splineState | `integer` | |
|
||||
| squishTimer | `integer` | |
|
||||
|
|
|
@ -385,6 +385,7 @@ struct MarioState
|
|||
/*????*/ f32 minimumBoneY;
|
||||
/*????*/ f32 curAnimOffset;
|
||||
/*????*/ u8 knockbackTimer;
|
||||
/*????*/ u8 specialTripleJump;
|
||||
};
|
||||
|
||||
struct TextureInfo
|
||||
|
|
|
@ -150,7 +150,7 @@ void yoshi_give_present_loop(void) {
|
|||
|
||||
if (gHudDisplay.lives == 100) {
|
||||
play_sound(SOUND_GENERAL_COLLECT_1UP, gGlobalSoundSource);
|
||||
gSpecialTripleJump = TRUE;
|
||||
gMarioStates[0].specialTripleJump = true;
|
||||
o->oAction = YOSHI_ACT_WALK_JUMP_OFF_ROOF;
|
||||
return;
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ void bhv_yoshi_loop(void) {
|
|||
|
||||
if (sYoshiTalkingState > 2) {
|
||||
if (gHudDisplay.lives >= 100) {
|
||||
gSpecialTripleJump = 1;
|
||||
gMarioStates[0].specialTripleJump = true;
|
||||
sYoshiTalkingState = 3;
|
||||
} else if ((gGlobalTimer & 0x03) == 0) {
|
||||
play_sound(SOUND_MENU_YOSHI_GAIN_LIVES, gGlobalSoundSource);
|
||||
|
|
|
@ -1282,7 +1282,7 @@ static u8 resolve_player_collision(struct MarioState* m, struct MarioState* m2)
|
|||
velY = fmax(fmin(55.0f, 15.0f + fabs(m->vel[1])), 35.0f);
|
||||
} else if (m->action == ACT_DOUBLE_JUMP) {
|
||||
mario_stop_riding_and_holding(m);
|
||||
set_mario_action(m, (gSpecialTripleJump && m->playerIndex == 0) ? ACT_SPECIAL_TRIPLE_JUMP : ACT_TRIPLE_JUMP, 0);
|
||||
set_mario_action(m, (m->specialTripleJump && m->playerIndex == 0) ? ACT_SPECIAL_TRIPLE_JUMP : ACT_TRIPLE_JUMP, 0);
|
||||
velY = fmax(fmin(60.0f, 20.0f + fabs(m->vel[1])), 40.0f);
|
||||
} else {
|
||||
mario_stop_riding_and_holding(m);
|
||||
|
|
|
@ -1503,7 +1503,7 @@ s32 lvl_init_from_save_file(UNUSED s16 arg0, s32 levelNum) {
|
|||
gCurrCourseNum = COURSE_NONE;
|
||||
gSavedCourseNum = COURSE_NONE;
|
||||
gCurrCreditsEntry = NULL;
|
||||
gSpecialTripleJump = FALSE;
|
||||
gMarioStates[0].specialTripleJump = FALSE;
|
||||
|
||||
init_mario_from_save_file();
|
||||
disable_warp_checkpoint();
|
||||
|
@ -1570,7 +1570,7 @@ void fake_lvl_init_from_save_file(void) {
|
|||
if (gNetworkType == NT_NONE) { gNeverEnteredCastle = true; }
|
||||
|
||||
gCurrCreditsEntry = NULL;
|
||||
gSpecialTripleJump = 0;
|
||||
gMarioStates[0].specialTripleJump = false;
|
||||
|
||||
init_mario_from_save_file();
|
||||
disable_warp_checkpoint();
|
||||
|
|
|
@ -483,7 +483,7 @@ s32 act_double_jump(struct MarioState *m) {
|
|||
}
|
||||
|
||||
s32 act_triple_jump(struct MarioState *m) {
|
||||
if (m == &gMarioStates[0] && gSpecialTripleJump) {
|
||||
if (m == &gMarioStates[0] && m->specialTripleJump) {
|
||||
return set_mario_action(m, ACT_SPECIAL_TRIPLE_JUMP, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,6 @@ s8 sUnusedGotGlobalCoinHiScore = 0;
|
|||
u8 gGotFileCoinHiScore = FALSE;
|
||||
u8 gCurrCourseStarFlags = 0;
|
||||
|
||||
u8 gSpecialTripleJump = FALSE;
|
||||
u8 gSaveFileUsingBackupSlot = FALSE;
|
||||
|
||||
#define STUB_LEVEL(_0, _1, courseenum, _3, _4, _5, _6, _7, _8) courseenum,
|
||||
|
|
|
@ -79,7 +79,6 @@ extern u8 gLastCompletedStarNum;
|
|||
extern s8 sUnusedGotGlobalCoinHiScore;
|
||||
extern u8 gGotFileCoinHiScore;
|
||||
extern u8 gCurrCourseStarFlags;
|
||||
extern u8 gSpecialTripleJump;
|
||||
extern s8 gLevelToCourseNumTable[];
|
||||
|
||||
// game progress flags
|
||||
|
|
|
@ -713,7 +713,7 @@ static struct LuaObjectField sMarioBodyStateFields[LUA_MARIO_BODY_STATE_FIELD_CO
|
|||
{ "wingFlutter", LVT_S8, offsetof(struct MarioBodyState, wingFlutter), false, LOT_NONE },
|
||||
};
|
||||
|
||||
#define LUA_MARIO_STATE_FIELD_COUNT 73
|
||||
#define LUA_MARIO_STATE_FIELD_COUNT 74
|
||||
static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
|
||||
{ "action", LVT_U32, offsetof(struct MarioState, action), false, LOT_NONE },
|
||||
{ "actionArg", LVT_U32, offsetof(struct MarioState, actionArg), false, LOT_NONE },
|
||||
|
@ -774,6 +774,7 @@ static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
|
|||
{ "slideVelZ", LVT_F32, offsetof(struct MarioState, slideVelZ), false, LOT_NONE },
|
||||
{ "slideYaw", LVT_S16, offsetof(struct MarioState, slideYaw), false, LOT_NONE },
|
||||
{ "spawnInfo", LVT_COBJECT_P, offsetof(struct MarioState, spawnInfo), false, LOT_SPAWNINFO },
|
||||
{ "specialTripleJump", LVT_U8, offsetof(struct MarioState, specialTripleJump), false, LOT_NONE },
|
||||
// { "splineKeyframe", LVT_???, offsetof(struct MarioState, splineKeyframe), false, LOT_??? }, <--- UNIMPLEMENTED
|
||||
{ "splineKeyframeFraction", LVT_F32, offsetof(struct MarioState, splineKeyframeFraction), false, LOT_NONE },
|
||||
{ "splineState", LVT_S32, offsetof(struct MarioState, splineState), false, LOT_NONE },
|
||||
|
|
Loading…
Reference in a new issue