@@ -339,7 +339,38 @@ void Ai_Cheryl_Init(s_SubCharacter* chara) // 0x800D8888
339339
340340#include "maps/shared/sharedFunc_800D92AC_0_s00.h" // 0x800D92AC
341341
342- INCLUDE_ASM ("asm/maps/map0_s00/nonmatchings/map0_s00" , func_800D94F8 );
342+ void func_800D94F8 (void )
343+ {
344+ s32 i ;
345+ s32 flags1 ;
346+ s32 flags0 ;
347+ u16 saveFlag ;
348+ u16 * var_a2 ;
349+ u32 saveByte ;
350+
351+ // @hack not used directly but gets merged with the Savegame_EventFlagGet macros bellow.
352+ saveByte = g_SavegamePtr -> eventFlags_168 [0 ];
353+ flags1 = 0x199 ;
354+ flags0 = 0x100 ;
355+
356+ if ((g_SysWork .player_4C .chara_0 .health_B0 > 0 ) && (!(Savegame_EventFlagGet (23 ) && !Savegame_EventFlagGet (20 ))))
357+ {
358+ for (i = 1 ; i < 7 ; i ++ )
359+ {
360+ saveFlag = D_800DF300 [i ];
361+ if (Savegame_EventFlagGet ((s16 )saveFlag ))
362+ {
363+ flags0 |= 1 << i ;
364+ }
365+ }
366+ }
367+ else
368+ {
369+ Savegame_EventFlagClear (EventFlag_20 );
370+ flags1 = 0x4CC ;
371+ }
372+ func_80035F4C (flags0 , flags1 , & D_800DF2F8 );
373+ }
343374
344375/** Debug function? */
345376void Gfx_LoadingScreen_StageString () // 0x800D95D4
@@ -930,7 +961,55 @@ void func_800DAEFC(void) // 0x800DAEFC
930961 }
931962}
932963
933- INCLUDE_ASM ("asm/maps/map0_s00/nonmatchings/map0_s00" , func_800DB26C );
964+ void func_800DB26C (void )
965+ {
966+ if (g_SysWork .sysStateStep_C [0 ] == 0 )
967+ {
968+ Camera_TranslationSet (NULL , Q12 (-62.0f ), Q12 (-2.24f ), Q12 (117.0f ), 0 , 0 , 0 , 0 , 1 );
969+ Camera_RotationSet (NULL , Q12 (-62.0f ), Q12 (-0.7f ), Q12 (104.0f ), 0 , 0 , 0 , 0 , true);
970+ func_800868DC (2 );
971+ }
972+ switch (g_SysWork .sysStateStep_C [0 ]) {
973+ case 0 :
974+ sharedFunc_800D20E4_0_s00 ();
975+ func_8008616C (0 , true, 2 , 0 , false);
976+ func_800865FC (1 , 0 , 0 , Q12 (-0.25f ), Q12 (-60.5f ), g_SysWork .player_4C .chara_0 .position_18 .vz );
977+ g_SysWork .npcs_1A0 [0 ].position_18 .vx = Q12 (-62.0f );
978+ g_SysWork .npcs_1A0 [0 ].rotation_24 .vy = Q12 (0.5f );
979+ g_SysWork .npcs_1A0 [0 ].position_18 .vz = g_SysWork .player_4C .chara_0 .position_18 .vz - Q12 (9.0f );
980+ SysWork_StateStepIncrement ();
981+
982+ /* fallthrough */
983+ case 1 :
984+ func_80085DF0 ();
985+ return ;
986+ case 2 :
987+ func_800866D4 (0x36 , 1 , 0 );
988+ return ;
989+ case 3 :
990+ g_DeltaTime0 >>= 1 ;
991+ func_800865FC (0 , 0 , 0 , Q12 (-0.375f ), 0 , 0 );
992+ func_80085E6C (Q12 (0.8f ), false);
993+ return ;
994+ case 4 :
995+ g_DeltaTime0 >>= 1 ;
996+ Savegame_EventFlagSet (EventFlag_8 );
997+ func_800866D4 (0x36 , 1 , 0 );
998+ return ;
999+ case 5 :
1000+ g_DeltaTime0 >>= 1 ;
1001+ func_80085E6C (Q12 (1.0f ), false);
1002+ return ;
1003+ default :
1004+ func_8008616C (0 , false, 2 , 0 , false);
1005+ Savegame_EventFlagSet (EventFlag_7 );
1006+ func_800865FC (1 , 1 , 0 , Q12 (0.5f ), Q12 (-62.0f ), Q12 (49.0f ));
1007+ sharedFunc_800D2244_0_s00 (0 );
1008+ SysWork_StateSetNext (SysState_Gameplay );
1009+
1010+ return ;
1011+ }
1012+ }
9341013
9351014void func_800DB514 (void )
9361015{
0 commit comments