@@ -660,7 +660,7 @@ void func_800DA5A0(void) // 0x800DA5A0
660660 {
661661 case 0 :
662662 sharedFunc_800D20E4_0_s00 ();
663- sharedFunc_800D88AC_0_s00 (g_SysWork .npcs_1A0 );
663+ sharedFunc_800D88AC_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] );
664664 func_800865FC (true, 1 , 0 , FP_ANGLE (-135.0f ), Q12 (-35.0f ), Q12 (120.0f ));
665665
666666 temp_s1_2 = g_SysWork .player_4C .chara_0 .position_18 .vx ;
@@ -689,13 +689,13 @@ void func_800DA5A0(void) // 0x800DA5A0
689689 case 3 :
690690 g_SysWork .npcs_1A0 [0 ].properties_E4 .player .headingAngle_124 = Q12 (1.8f );
691691
692- func_80086728 (& g_SysWork .npcs_1A0 [0 ]. model_0 , 2 , 1 , 0 );
692+ func_80086728 (& g_SysWork .npcs_1A0 [0 ], 2 , 1 , 0 );
693693 func_80085E6C (Q12 (1.5f ), false);
694694 break ;
695695
696696 case 4 :
697697 g_SysWork .npcs_1A0 [0 ].properties_E4 .player .headingAngle_124 = Q12 (1.8f );
698- func_80086728 (& g_SysWork .npcs_1A0 [0 ]. model_0 , 2 , 1 , 0 );
698+ func_80086728 (& g_SysWork .npcs_1A0 [0 ], 2 , 1 , 0 );
699699 break ;
700700
701701 case 5 :
@@ -727,7 +727,7 @@ void func_800DA5A0(void) // 0x800DA5A0
727727
728728 case 10 :
729729 g_SysWork .npcs_1A0 [0 ].properties_E4 .player .headingAngle_124 = 0x8CC ;
730- func_80086728 (& g_SysWork .npcs_1A0 [0 ]. model_0 , 1 , 1 , 0 );
730+ func_80086728 (& g_SysWork .npcs_1A0 [0 ], 1 , 1 , 0 );
731731 break ;
732732
733733 case 11 :
@@ -742,7 +742,7 @@ void func_800DA5A0(void) // 0x800DA5A0
742742 sharedFunc_800D2244_0_s00 (0 );
743743 SysWork_StateSetNext (SysState_Gameplay );
744744
745- sharedFunc_800D88C0_0_s00 (g_SysWork .npcs_1A0 , 0 );
745+ sharedFunc_800D88C0_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] , 0 );
746746 break ;
747747 }
748748}
@@ -934,87 +934,80 @@ INCLUDE_ASM("asm/maps/map0_s00/nonmatchings/map0_s00", func_800DB26C);
934934
935935void func_800DB514 (void )
936936{
937- s32 temp_v0 ;
938- s32 var_a1 ;
939-
940937 switch (g_SysWork .sysStateStep_C [0 ])
941938 {
942- case 0 :
943- sharedFunc_800D20E4_0_s00 ();
944- D_800DFB5C = 0 ;
945- D_800DFB60 = 0 ;
946- GameFs_FlameGfxLoad ();
947- SysWork_StateStepIncrement ();
948-
949- /* fallthrough */
950- case 1 :
951- func_8008616C (2 , true, 2 , 0 , false);
952- break ;
953- case 2 :
954- func_80085DF0 ();
955- break ;
956- case 3 :
957- SysWork_StateStepIncrement ();
958-
959- /* fallthrough */
960- case 4 :
961- MapMsg_DisplayAndHandleSelection (false, 0x19 , false, false, 0 , false);
962- break ;
963- case 5 :
964- func_8008605C (0x10 , 6 , 5 , false);
965- break ;
966- case 6 :
967- if (D_800DFB60 )
968- {
939+ case 0 :
940+ sharedFunc_800D20E4_0_s00 ();
941+ D_800DFB5C = 0 ;
942+ D_800DFB60 = 0 ;
943+ GameFs_FlameGfxLoad ();
969944 SysWork_StateStepIncrement ();
970- }
971- break ;
972- if (Fs_QueueDoThingWhenEmpty () != false)
973- {
974- D_800DFB60 ++ ;
975- Chara_Load (1 , 8 , g_SysWork .npcCoords_FC0 , 0 , NULL , NULL );
976- }
977- case 7 :
978- sharedFunc_800D209C_0_s00 ();
979- SysWork_StateStepIncrement ();
980-
981- /* fallthrough */
982- case 8 :
983- func_80085EB8 (1U , & g_SysWork .player_4C .chara_0 , 0 , false);
984- break ;
985- case 9 :
986- func_8003EF10 (0xA , 0xA , 5 , (s32 ) & D_800DFB5C , 0 , Q12 (0.5f ));
987- SysWork_StateStepIncrement ();
988-
989- /* fallthrough */
990- case 10 :
991- D_800DFB5C += g_DeltaTime0 ;
992- if (D_800DFB5C > Q12 (0.5f ))
993- {
945+
946+ /* fallthrough */
947+ case 1 :
948+ func_8008616C (2 , true, 2 , 0 , false);
949+ break ;
950+ case 2 :
951+ func_80085DF0 ();
952+ break ;
953+ case 3 :
994954 SysWork_StateStepIncrement ();
995- }
996- break ;
997- case 11 :
998- g_SavegamePtr -> eventFlags_168 [0 ] |= 0x20000 ;
999- MapMsg_DisplayAndHandleSelection (false, 0x1E , false, false, 0 , false);
1000- break ;
1001- default :
1002- func_8008616C (0 , false, 2 , 0 , false);
1003- sharedFunc_800D2244_0_s00 (1 );
1004- SysWork_StateSetNext (SysState_Gameplay );
1005-
1006- func_80088D0C ();
1007- Chara_Spawn (Chara_GreyChild , 0 , -0xFC000 , 0xDF000 , 0x800 , 5U );
1008- Chara_Spawn (Chara_GreyChild , 1 , -0xFE000 , 0xDD000 , 0x600 , 5U );
1009- Chara_Spawn (Chara_GreyChild , 2 , -0x103000 , 0xE8000 , 0 , 5U );
1010- break ;
955+
956+ /* fallthrough */
957+ case 4 :
958+ MapMsg_DisplayAndHandleSelection (false, 25 , false, false, 0 , false);
959+ break ;
960+ case 5 :
961+ func_8008605C (16 , 6 , 5 , false);
962+ break ;
963+ case 6 :
964+ if (D_800DFB60 )
965+ {
966+ SysWork_StateStepIncrement ();
967+ }
968+ break ;
969+ case 7 :
970+ sharedFunc_800D209C_0_s00 ();
971+ SysWork_StateStepIncrement ();
972+
973+ /* fallthrough */
974+ case 8 :
975+ func_80085EB8 (1 , & g_SysWork .player_4C .chara_0 , 0 , false);
976+ break ;
977+ case 9 :
978+ func_8003EF10 (10 , 10 , 5 , & D_800DFB5C , 0 , Q12 (0.5f ));
979+ SysWork_StateStepIncrement ();
980+
981+ /* fallthrough */
982+ case 10 :
983+ D_800DFB5C += g_DeltaTime0 ;
984+ if (D_800DFB5C > Q12 (0.5f ))
985+ {
986+ SysWork_StateStepIncrement ();
987+ }
988+ break ;
989+ case 11 :
990+ Savegame_EventFlagSet (EventFlag_17 );
991+ MapMsg_DisplayAndHandleSelection (false, 30 , false, false, 0 , false);
992+ break ;
993+ default :
994+ func_8008616C (0 , false, 2 , 0 , false);
995+ sharedFunc_800D2244_0_s00 (1 );
996+ SysWork_StateSetNext (SysState_Gameplay );
997+
998+ func_80088D0C ();
999+ Chara_Spawn (Chara_GreyChild , 0 , Q12 (-252.0f ), Q12 (223.0f ), FP_ANGLE (180.0f ), 5U );
1000+ Chara_Spawn (Chara_GreyChild , 1 , Q12 (-254.0f ), Q12 (221.0f ), FP_ANGLE (135.0f ), 5U );
1001+ Chara_Spawn (Chara_GreyChild , 2 , Q12 (-259.0f ), Q12 (232.0f ), 0 , 5U );
1002+ break ;
10111003 }
10121004
10131005 if (D_800DFB60 == 0 )
10141006 {
1015- if (Fs_QueueDoThingWhenEmpty () != false) {
1007+ if (Fs_QueueDoThingWhenEmpty () != false)
1008+ {
10161009 D_800DFB60 ++ ;
1017- Chara_Load (1 , 8 , g_SysWork .npcCoords_FC0 , 0 , NULL , NULL );
1010+ Chara_Load (1 , Chara_GreyChild , g_SysWork .npcCoords_FC0 , 0 , NULL , NULL );
10181011 }
10191012 }
10201013}
@@ -1168,7 +1161,7 @@ void func_800DC33C(void) // 0x800DC33C
11681161 if (!Savegame_EventFlagGet (EventFlag_5 ))
11691162 {
11701163 func_800865FC (true, 1 , 0 , FP_ANGLE (180.0f ), Q12 (-62.0f ), Q12 (108.0f ));
1171- sharedFunc_800D88AC_0_s00 (g_SysWork .npcs_1A0 );
1164+ sharedFunc_800D88AC_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] );
11721165
11731166 Savegame_EventFlagSet (EventFlag_5 );
11741167 }
@@ -1192,7 +1185,7 @@ void func_800DC33C(void) // 0x800DC33C
11921185 g_SysWork .npcs_1A0 [0 ].position_18 .vx = 1 ;
11931186 g_SysWork .npcs_1A0 [0 ].properties_E4 .player .headingAngle_124 = FP_ANGLE (0.0f );
11941187
1195- sharedFunc_800D88C0_0_s00 (g_SysWork .npcs_1A0 , 0 );
1188+ sharedFunc_800D88C0_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] , 0 );
11961189
11971190 Savegame_EventFlagSet (EventFlag_6 );
11981191 return ;
@@ -1261,7 +1254,7 @@ void func_800DC694(void) // 0x800DC694
12611254
12621255 if (!Savegame_EventFlagGet (EventFlag_7 ))
12631256 {
1264- sharedFunc_800D88AC_0_s00 (g_SysWork .npcs_1A0 );
1257+ sharedFunc_800D88AC_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] );
12651258 return ;
12661259 }
12671260
@@ -1280,7 +1273,7 @@ void func_800DC694(void) // 0x800DC694
12801273 g_SysWork .npcs_1A0 [0 ].position_18 .vz = 1 ;
12811274 g_SysWork .npcs_1A0 [0 ].position_18 .vx = 1 ;
12821275
1283- sharedFunc_800D88C0_0_s00 (g_SysWork .npcs_1A0 , 0 );
1276+ sharedFunc_800D88C0_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] , 0 );
12841277
12851278 Savegame_EventFlagSet (EventFlag_9 );
12861279 return ;
@@ -1338,7 +1331,7 @@ void func_800DC8D8(void) // 0x800DC8D8
13381331
13391332 if (mag < Q12 (14.8f ))
13401333 {
1341- sharedFunc_800D88AC_0_s00 (g_SysWork .npcs_1A0 );
1334+ sharedFunc_800D88AC_0_s00 (& g_SysWork .npcs_1A0 [ 0 ] );
13421335
13431336 Savegame_EventFlagSet (EventFlag_10 );
13441337
@@ -1483,30 +1476,34 @@ void func_800DD0CC()
14831476
14841477 if (D_800DFB40 == NO_VALUE )
14851478 {
1486- func_8003EF10 (6 , 6 , 5 , ( s32 ) & D_800DFB40 , 0 , 0x64000 );
1479+ func_8003EF10 (6 , 6 , 5 , & D_800DFB40 , 0 , Q12 ( 100.0f ) );
14871480 D_800DFB40 = 0 ;
14881481 }
1482+
14891483 D_800DFB44 .unk0 += g_DeltaTime0 ;
1484+
14901485 vec0 [0 ] = FP_MULTIPLY (D_800DFB44 .unk0 , D_800DFB48 .unk0 , 6 );
1491- if (vec0 [0 ] >= 0x1000 )
1486+ if (vec0 [0 ] >= Q12 ( 1.0f ) )
14921487 {
1493- D_800DFB44 .unk0 = 0U ;
1494- D_800DFB48 .unk0 = ( u8 ) (( Rng_Rand16 () & 0x3F ) + 0x20 );
1495- D_800DFB48 .unk1 = ( u8 ) (( Rng_Rand16 () & 0x1F ) + 0x20 );
1496- vec0 [0 ] &= 0xFFF ;
1488+ D_800DFB44 .unk0 = 0 ;
1489+ D_800DFB48 .unk0 = Rng_GenerateInt (( u32 ) Rng_Rand16 (), 32 , 95 );
1490+ D_800DFB48 .unk1 = Rng_GenerateInt (( u32 ) Rng_Rand16 (), 32 , 63 );
1491+ vec0 [0 ] = Q12_FRACT ( vec0 [ 0 ]) ;
14971492 }
14981493
14991494 vec0 [0 ] = FP_MULTIPLY (D_800DFB48 .unk1 , Math_Sin (D_800DFB44 .unk2 ), 12 );
1495+
15001496 D_800DFB44 .unk2 += g_DeltaTime0 ;
1497+
15011498 vec0 [1 ] = FP_MULTIPLY (D_800DFB44 .unk2 , D_800DFB48 .unk2 , 6 );
1502- if (vec0 [1 ] >= 0x1000 )
1499+ if (vec0 [1 ] >= Q12 ( 1.0f ) )
15031500 {
15041501 D_800DFB44 .unk2 = 0 ;
1505- D_800DFB48 .unk2 = ( u8 ) (( Rng_Rand16 () & 0x3F ) + 0x20 );
1506- vec0 [1 ] &= 0xFFF ;
1502+ D_800DFB48 .unk2 = Rng_GenerateInt (( u32 ) Rng_Rand16 (), 32 , 95 );
1503+ vec0 [1 ] = Q12_FRACT ( vec0 [ 1 ]) ;
15071504 }
15081505
1509- D_800DFB40 = MAX (0 , FP_MULTIPLY ((FP_MULTIPLY (vec0 [0 ], Q12 (4.5f ), 6 ) + Q12 (2.5f )), Math_Sin (vec0 [1 ]), 12 ) + Q12 (4.0f ));
1506+ D_800DFB40 = MAX (0 , FP_MULTIPLY ((FP_MULTIPLY (vec0 [0 ], Q12 (4.5f ), 6 ) + Q12 (2.5f )), Math_Sin (vec0 [1 ]), Q12_SHIFT ) + Q12 (4.0f ));
15101507}
15111508
15121509INCLUDE_RODATA ("asm/maps/map0_s00/nonmatchings/map0_s00" , D_800CB6A4 );
0 commit comments