near-match begin_state_intro

This commit is contained in:
Alex Bates 2020-10-14 23:22:43 +01:00
parent ceec9c2a2d
commit ff3fbdfa8f
No known key found for this signature in database
GPG Key ID: 5E11C2DB78877706
3 changed files with 123 additions and 5 deletions

View File

@ -89,10 +89,21 @@ extern Trigger* gTriggerList1[64];
extern Trigger* gTriggerList2[64];
extern Trigger** gCurrentTriggerListPtr[64];
// Map transition data. Should probably be a struct
extern u16 gMapTransitionAlpha;
extern u16 D_800A0942;
extern s16 D_800A0942;
extern s16 D_800A0944;
extern s16 D_800A0954;
extern s16 D_800A0956;
extern s16 D_800A0958;
extern s16 D_800A095A;
extern u8 D_800A095B;
extern s16 D_800A095C;
extern u8 D_800A095D;
extern s16 D_800A095E;
extern u8 D_800A095F;
extern s32 D_800A0960;
extern s32 D_800A0964;
extern s32 gGameState;
extern s32 D_8009A650[1];
@ -138,6 +149,9 @@ extern u32 gBattleMapFlags[MAX_MAPFLAGS];
extern s32 D_8009A5D8;
extern u8 D_800779B0;
extern u8 D_800A0963;
extern s32 mapScriptLibStart;
extern s32 mapScriptLibEnd;
extern s32 mapScriptLibVram;

View File

@ -1,6 +1,96 @@
#include "common.h"
void set_curtain_scale_goal(f32 arg0);
void set_curtain_fade_goal(f32 arg0);
void intro_logos_set_fade_alpha(s16 new_alpha);
void intro_logos_set_fade_color(s16 arg0);
#ifdef NON_MATCHING
void begin_state_intro(void) {
s8 unk_A8;
GAME_STATUS->loadMenuState = 0;
set_curtain_scale_goal(1.0f);
set_curtain_fade_goal(0.3f);
unk_A8 = GAME_STATUS->unk_A8;
switch (unk_A8) {
case 0:
intro_logos_set_fade_alpha(0);
D_800A0954 = 0xFF;
D_800A0956 = 0x10;
D_800A0958 = 4;
D_800A0960 = 0;
D_800A095A = 0xD0;
D_800A095C = 0xD0;
D_800A095E = 0xD0;
D_800A0964 = 0;
do {
GameStatus* gameStatus = GAME_STATUS;
// hos_05 (Star Sanctuary)
gameStatus->areaID = 5;
gameStatus->mapID = 5;
gameStatus->entryID = 3;
} while (0);
break;
case 1:
intro_logos_set_fade_alpha(0);
D_800A0954 = 0;
D_800A0956 = 0xC;
D_800A0958 = 4;
D_800A0960 = unk_A8;
D_800A095A = 0;
D_800A095C = 0;
D_800A095E = 0;
D_800A0964 = 0;
// FIXME: regalloc issues
do {
GameStatus* gameStatus = GAME_STATUS;
// hos_04 (Outside the Sanctuary)
gameStatus->areaID = 5;
gameStatus->mapID = 4;
gameStatus->entryID = 4;
} while (0);
break;
default:
intro_logos_set_fade_alpha(0);
intro_logos_set_fade_color(0xD0);
{
GameStatus* gameStatus = GAME_STATUS;
u8* mystery = &D_800779B0;
gameStatus->unk_A8 = -1;
D_800A0956 = 6;
D_800A0958 = 6;
++*mystery;
if (*mystery >= 4) {
*mystery = 0;
}
D_800A0964 = 3;
}
}
func_80137DA4(D_800A0963, (f32)D_800A0954);
func_80137E10(1, D_800A095B, D_800A095D, D_800A095F);
intro_logos_update_fade();
}
#else
INCLUDE_ASM(s32, "code_11a50_len_7a0", begin_state_intro);
#endif
INCLUDE_ASM(s32, "code_11a50_len_7a0", step_intro);

View File

@ -29,13 +29,27 @@ gWorldMapFlags = 0x802DBC70;
gBattleMapFlags = 0x802DBD34;
gMapTransitionAlpha = 0x800A0940;
D_800A0940 = 0x800A0940;
D_800A0942 = 0x800A0942;
D_800A0944 = 0x800A0944;
D_800A0954 = 0x800A0954;
D_800A0956 = 0x800A0956;
D_800A0958 = 0x800A0958;
D_800A095A = 0x800A095A;
D_800A095B = 0x800A095B;
D_800A095C = 0x800A095C;
D_800A095D = 0x800A095D;
D_800A095E = 0x800A095E;
D_800A095F = 0x800A095D;
D_800A0960 = 0x800A0960;
D_800A0963 = 0x800A0963;
D_800A0964 = 0x800A0964;
D_800E92D8 = 0x800E92D8;
D_80147474 = 0x80147474;
D_80109270 = 0x80109270;
D_80108558 = 0x80108558;
D_800A0940 = 0x800A0940;
D_800A0942 = 0x800A0942;
D_800A0944 = 0x800A0944;
D_800779B0 = 0x800779B0;
D_8010CD10 = 0x8010CD10;
D_8010CD12 = 0x8010CD12;