mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-29 08:12:52 -04:00
fd45f3f3ac
* Initial work * Work on ori2 and others * Work on npc_ks_home * Work on npc_ks_demo_022 * Chugging through * Started on demo_camera * More demo_camera work * 51% equivalent * General cleanup * Fixed compile error in d_a_e_mk * Small d_a_e_mk fix * d_a_e_fs fix * PR cleanup * Started work on d_a_obj_sw
5224 lines
206 KiB
C++
5224 lines
206 KiB
C++
/**
|
|
* @file d_a_npc_ks.cpp
|
|
*
|
|
*/
|
|
|
|
#include "d/actor/d_a_npc_ks.h"
|
|
#include "d/d_cc_d.h"
|
|
#include "dol2asm.h"
|
|
#include "d/d_camera.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_bomb.h"
|
|
#include "d/actor/d_a_obj_so.h"
|
|
#include "d/actor/d_a_boomerang.h"
|
|
#include "d/d_stage.h"
|
|
#include "d/actor/d_a_obj_sw.h"
|
|
#include "d/actor/d_a_obj_pillar.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "c/c_damagereaction.h"
|
|
#include "d/actor/d_a_e_fs.h"
|
|
#include "d/actor/d_a_obj_brg.h"
|
|
#include "d/actor/d_a_midna.h"
|
|
#include "JSystem/JUtility/JUTReport.h"
|
|
#include "d/d_meter2_info.h"
|
|
#include "cmath.h"
|
|
#include "d/actor/d_a_e_oc.h"
|
|
#include "Z2AudioLib/Z2Instances.h"
|
|
|
|
UNK_REL_DATA;
|
|
|
|
/* 80A5E478-80A5E498 000020 0020+00 13/13 0/0 0/0 .data saru_p */
|
|
static npc_ks_class* saru_p[8] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5E4D0-80A5E63C 000078 016C+00 1/1 0/0 0/0 .data guide_path_04 */
|
|
static f32 guide_path_04[91] = {
|
|
// 0, -4554.0f, 3893.0f, -2377.0f, 0, 0, 0
|
|
// 0, 0, 0, 0, 0, 0, 1,
|
|
// -3379.0f, 3944.0f, -2314.0f, 0, 0, 0, 0,
|
|
// 0, 0, 0, 0, 0, 1, -1887.0f,
|
|
// 3944.0f, -2184.0f, 0, 0, 0, 0, 0,
|
|
// 0, 0, 0, 0, 1, -912.0f, 3907.0f,
|
|
// -2243.0f, 0, 0, 0, 0, 0, 0,
|
|
// 0, 0, 0, 0, 100.0f, 3900.0f, -2536.0f,
|
|
// 0, 0, 0, 0, 0, 0, 0,
|
|
// 0, 0, 1, 519.0f, 4590.0f, -2889.0f, 0,
|
|
// 0, 0, 0, 0, 0, 0, 0,
|
|
// 0, -1, 0, 0, 0, 0, 0,
|
|
// 0, 0, 0, 0, 0, 0, 0,
|
|
0x00000000, 0xC58E5000, 0x45735000, 0xC5149000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
|
|
0xC5533000, 0x45768000, 0xC510A000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xC4EBE000,
|
|
0x45768000, 0xC5088000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xC4640000, 0x45743000,
|
|
0xC50C3000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x42C80000, 0x4573C000, 0xC51E8000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000001, 0x4401C000, 0x458F7000, 0xC5349000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
};
|
|
|
|
/* 80A5E67C-80A5E780 000224 0104+00 1/1 0/0 0/0 .data move_path_02 */
|
|
static f32 move_path_02[65] = {
|
|
0x00000000, 0x462A7800, 0x456A4000, 0x4590B000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x462BE800, 0x456A4000,
|
|
0x457F5000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x46334800,
|
|
0x456A4000, 0x4567D000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x463B9C00, 0x45672000, 0x455E1000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x463D1C00, 0x4544C000, 0x4594C000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
|
0x00000000,
|
|
};
|
|
|
|
/* 80A5E948-80A5E94C 0004F0 0004+00 1/1 0/0 0/0 .data yuka_jump_x */
|
|
static f32 yuka_jump_x = 80.0f;
|
|
|
|
/* 80A5EA24-80A5EC2C 0005CC 0208+00 1/1 0/0 0/0 .data guide_path_00 */
|
|
static u8 guide_path_00[520] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x42, 0x58, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0xA6, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x1C, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00,
|
|
0x45, 0xAE, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00,
|
|
0x45, 0x4C, 0xC0, 0x00, 0x45, 0xB6, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x41, 0x00, 0x00, 0x00, 0x45, 0x4A, 0x20, 0x00, 0x45, 0xBF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0x45, 0x47, 0xE0, 0x00, 0x45, 0xC7, 0x20, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x45, 0x45, 0xA0, 0x00,
|
|
0x45, 0xCE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x38, 0x00, 0x00,
|
|
0x45, 0x44, 0xE0, 0x00, 0x45, 0xD6, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x43, 0x1F, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x45, 0xDD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x43, 0x92, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x45, 0xE1, 0x98, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5EC2C-80A5ED98 0007D4 016C+00 1/1 0/0 0/0 .data guide_path_00_2 */
|
|
SECTION_DATA static u8 guide_path_00_2[364] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x45, 0xD3, 0xB8, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0x45, 0x47, 0xB0, 0x00,
|
|
0x45, 0xC9, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
|
0x45, 0x4B, 0x70, 0x00, 0x45, 0xBC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x3F, 0x80, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0xAF, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0x9F, 0xA0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5ED98-80A5EED0 000940 0138+00 1/1 0/0 0/0 .data guide_path_00_3 */
|
|
SECTION_DATA static u8 guide_path_00_3[312] = {
|
|
0x00, 0x00, 0x00, 0x00, 0xC2, 0xA2, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x45, 0xCA, 0xE0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xAE, 0x00, 0x00, 0x45, 0x48, 0x00, 0x00,
|
|
0x45, 0xC1, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xF2, 0x00, 0x00,
|
|
0x45, 0x4B, 0x20, 0x00, 0x45, 0xB7, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x43, 0x20, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0xAF, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0x99, 0x50, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5EED0-80A5F140 000A78 0270+00 1/1 0/0 0/0 .data guide_path_01 */
|
|
SECTION_DATA static u8 guide_path_01[624] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x45, 0xA4, 0x70, 0x00, 0x45, 0x48, 0xD0, 0x00, 0x45, 0xF0, 0xF0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xBA, 0x80, 0x00, 0x45, 0x4B, 0x20, 0x00,
|
|
0x45, 0xDF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xC3, 0x50, 0x00,
|
|
0x45, 0x4F, 0x80, 0x00, 0x45, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0xC5, 0x88, 0x00, 0x45, 0x55, 0xC0, 0x00, 0x45, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x01, 0x45, 0xCB, 0x50, 0x00, 0x45, 0x55, 0xC0, 0x00, 0x45, 0xBA, 0x50, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x45, 0xD8, 0x90, 0x00, 0x45, 0x55, 0xF0, 0x00,
|
|
0x45, 0xAB, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x45, 0xDB, 0xA8, 0x00,
|
|
0x45, 0x51, 0xC0, 0x00, 0x45, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0xF5, 0x38, 0x00, 0x45, 0x52, 0xD0, 0x00, 0x45, 0x8D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x01, 0x46, 0x03, 0x68, 0x00, 0x45, 0x59, 0x50, 0x00, 0x45, 0x8D, 0x90, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0xC0, 0x00, 0x45, 0x57, 0xD0, 0x00,
|
|
0x45, 0x97, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x20, 0x00, 0x00,
|
|
0x45, 0x6A, 0x70, 0x00, 0x45, 0x98, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5F140-80A5F584 000CE8 0444+00 1/1 0/0 0/0 .data guide_path_02 */
|
|
SECTION_DATA static u8 guide_path_02[1092] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x40, 0x4C, 0x00, 0x45, 0x45, 0x00, 0x00, 0x45, 0xA3, 0xA8, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x4A, 0x04, 0x00, 0x45, 0x45, 0x00, 0x00,
|
|
0x45, 0xAC, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0xC8, 0x00,
|
|
0x45, 0x48, 0x20, 0x00, 0x45, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x46, 0x58, 0xF4, 0x00, 0x45, 0x51, 0x80, 0x00, 0x45, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x5B, 0x94, 0x00, 0x45, 0x54, 0xA0, 0x00, 0x45, 0x95, 0xE0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x5B, 0x10, 0x00, 0x45, 0x5A, 0x60, 0x00,
|
|
0x45, 0x87, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x56, 0x34, 0x00,
|
|
0x45, 0x5F, 0xB0, 0x00, 0x45, 0x72, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x46, 0x52, 0x84, 0x00, 0x45, 0x66, 0xF0, 0x00, 0x45, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x4C, 0x60, 0x00, 0x45, 0x6A, 0x80, 0x00, 0x45, 0x57, 0xF0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x49, 0x64, 0x00, 0x45, 0x6B, 0x40, 0x00,
|
|
0x45, 0x4C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x46, 0x47, 0x30, 0x00, 0x45, 0x45, 0x00, 0x00, 0x45, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x4C, 0xA4, 0x00, 0x45, 0x45, 0x00, 0x00, 0x45, 0xA5, 0x10, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x54, 0x48, 0x00, 0x45, 0x48, 0x20, 0x00,
|
|
0x45, 0xAE, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x59, 0x9C, 0x00,
|
|
0x45, 0x4E, 0x60, 0x00, 0x45, 0xA9, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x46, 0x5E, 0x08, 0x00, 0x45, 0x54, 0xA0, 0x00, 0x45, 0x99, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x5C, 0x80, 0x00, 0x45, 0x5A, 0x60, 0x00, 0x45, 0x83, 0xC8, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x55, 0x84, 0x00, 0x45, 0x64, 0x80, 0x00,
|
|
0x45, 0x60, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x74, 0x00,
|
|
0x45, 0x69, 0x70, 0x00, 0x45, 0x52, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x46, 0x4B, 0x6C, 0x00, 0x45, 0x6A, 0x80, 0x00, 0x45, 0x56, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5F584-80A5F6BC 00112C 0138+00 1/1 0/0 0/0 .data guide_path_22 */
|
|
SECTION_DATA static u8 guide_path_22[312] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x13, 0x20, 0x00, 0x46, 0x4A, 0x34, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00,
|
|
0x46, 0x49, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0x44, 0xE0, 0x00, 0x46, 0x44, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x46, 0x3E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0xE0, 0x00, 0x46, 0x36, 0xBC, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5F6BC-80A5F890 001264 01D4+00 1/1 0/0 0/0 .data guide_path_09 */
|
|
SECTION_DATA static u8 guide_path_09[468] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x45, 0xE7, 0x18, 0x00, 0x45, 0x4C, 0x90, 0x00, 0xC5, 0x98, 0x10, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xE7, 0x60, 0x00, 0x45, 0x4C, 0x90, 0x00,
|
|
0xC5, 0xAC, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xE7, 0x60, 0x00,
|
|
0x45, 0x49, 0x90, 0x00, 0xC5, 0xC3, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0xE7, 0xB8, 0x00, 0x45, 0x49, 0x90, 0x00, 0xC5, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x01, 0x45, 0xE6, 0xD0, 0x00, 0x45, 0x54, 0xF0, 0x00, 0xC5, 0xD1, 0x18, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xE5, 0x38, 0x00, 0x45, 0x5C, 0x10, 0x00,
|
|
0xC5, 0xDA, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xE1, 0xE8, 0x00,
|
|
0x45, 0x61, 0x00, 0x00, 0xC5, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0xE4, 0xB8, 0x00, 0x45, 0x61, 0x20, 0x00, 0xC6, 0x03, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5F890-80A5F994 001438 0104+00 1/1 0/0 0/0 .data guide_path_12 */
|
|
SECTION_DATA static u8 guide_path_12[260] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x45, 0xE6, 0x50, 0x00, 0x45, 0x61, 0x00, 0x00, 0xC6, 0x14, 0x04, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xEA, 0x60, 0x00, 0x45, 0x67, 0x20, 0x00,
|
|
0xC6, 0x1A, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x45, 0xFE, 0x10, 0x00,
|
|
0x45, 0x53, 0x20, 0x00, 0xC6, 0x28, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
|
0x46, 0x08, 0xB8, 0x00, 0x45, 0x65, 0xB0, 0x00, 0xC6, 0x27, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5F994-80A5FA98 00153C 0104+00 1/1 0/0 0/0 .data guide_path_0409 */
|
|
SECTION_DATA static u8 guide_path_0409[260] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x45, 0xD8, 0xD8, 0x00, 0x45, 0x58, 0x60, 0x00, 0xC3, 0x66, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xDD, 0x28, 0x00, 0x45, 0x5B, 0xE0, 0x00,
|
|
0xC4, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xDE, 0x80, 0x00,
|
|
0x45, 0x60, 0x70, 0x00, 0xC4, 0xC7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x45, 0xE3, 0xE0, 0x00, 0x45, 0x61, 0xD0, 0x00, 0xC5, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5FA98-80A5FC04 001640 016C+00 1/1 0/0 0/0 .data guide_path_fs */
|
|
SECTION_DATA static u8 guide_path_fs[364] = {
|
|
0x00, 0x00, 0x00, 0x01, 0xC7, 0x17, 0x82, 0x00, 0x44, 0x8E, 0x80, 0x00, 0xC6, 0xB6, 0x32, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC7, 0x15, 0x33, 0x00, 0x44, 0x3B, 0x80, 0x00,
|
|
0xC6, 0xB0, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x14, 0x41, 0x00,
|
|
0x44, 0x2D, 0x80, 0x00, 0xC6, 0xAB, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xC7, 0x12, 0xE6, 0x00, 0x44, 0x08, 0x40, 0x00, 0xC6, 0xA9, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xC7, 0x11, 0x26, 0x00, 0x43, 0x99, 0x00, 0x00, 0xC6, 0xA8, 0xF8, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x0E, 0xC4, 0x00, 0x43, 0xAE, 0x00, 0x00,
|
|
0xC6, 0xA7, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 80A5FCB0-80A5FCBC 001858 000C+00 0/0 0/0 0/0 .data dx$11146 */
|
|
static f32 dx[3] = {
|
|
0x45E32000, 0x45A17000, 0x46104400,
|
|
};
|
|
|
|
/* 80A5FCBC-80A5FCC8 001864 000C+00 0/0 0/0 0/0 .data dy$11147 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static u8 dy[12] = {
|
|
0x45, 0x61, 0x00, 0x00, 0x45, 0x4E, 0x40, 0x00, 0x45, 0x4E, 0x40, 0x00,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 80A5FCC8-80A5FCD4 001870 000C+00 0/0 0/0 0/0 .data dz$11148 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static u8 dz[12] = {
|
|
0xC5, 0x53, 0xD0, 0x00, 0xC5, 0xA6, 0x78, 0x00, 0xC5, 0xA6, 0x58, 0x00,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 80A5FD30-80A5FD74 0018D8 0044+00 1/1 0/0 0/0 .data cc_cyl_src$11445 */
|
|
static dCcD_SrcCyl cc_cyl_src = {
|
|
{
|
|
{0x0, {{0x0, 0x0, 0x0}, {0xd8fafd3f, 0x3}, 0x79}}, // mObj
|
|
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
|
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg
|
|
{0x0}, // mGObjCo
|
|
}, // mObjInf
|
|
{
|
|
{0.0f, 0.0f, 0.0f}, // mCenter
|
|
30.0f, // mRadius
|
|
20.0f // mHeight
|
|
} // mCyl
|
|
};
|
|
|
|
/* 80A48F8C-80A49000 0000EC 0074+00 1/1 0/0 0/0 .text __ct__14daNpc_Ks_HIO_cFv */
|
|
daNpc_Ks_HIO_c::daNpc_Ks_HIO_c() {
|
|
field_0x4 = -1;
|
|
field_0x8 = 0.8f;
|
|
field_0xc = 200.0f;
|
|
field_0x10 = 10.0f;
|
|
field_0x14 = 25.0f;
|
|
field_0x18 = 20.0f;
|
|
field_0x1c = 25.0f;
|
|
field_0x20 = 10.0f;
|
|
field_0x30 = 300.0f;
|
|
field_0x34 = 1.8f;
|
|
field_0x24 = 600.0f;
|
|
field_0x28 = 1;
|
|
field_0x2c = 10.0f;
|
|
}
|
|
|
|
/* 80A49000-80A49054 000160 0054+00 2/2 0/0 0/0 .text setPlayerPosAndAngle__FP4cXyzs */
|
|
static void setPlayerPosAndAngle(cXyz* i_pos, s16 i_angle) {
|
|
if (dComIfGp_checkPlayerStatus0(0, 0x100) == 0) {
|
|
daPy_getPlayerActorClass()->setPlayerPosAndAngle(i_pos, i_angle, 0);
|
|
}
|
|
}
|
|
|
|
/* 80A49054-80A49088 0001B4 0034+00 14/14 0/0 0/0 .text checkDoorDemo__Fv */
|
|
static BOOL checkDoorDemo() {
|
|
if (daPy_getPlayerActorClass()->eventInfo.checkCommandDoor() && dComIfGp_event_chkEventFlag(4) == 0) {
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 80A49088-80A49168 0001E8 00E0+00 1/1 0/0 0/0 .text otherBgCheck__FP10fopAc_ac_cP10fopAc_ac_c */
|
|
static BOOL otherBgCheck(fopAc_ac_c* p_actor, fopAc_ac_c* p_actor2) {
|
|
dBgS_LinChk p_line;
|
|
cXyz pi_start, pi_end;
|
|
pi_end = p_actor2->current.pos;
|
|
pi_end.y += 100.0f;
|
|
|
|
pi_start = p_actor->current.pos;
|
|
pi_start.y += 120.0f;
|
|
|
|
p_line.Set(&pi_start, &pi_end, p_actor);
|
|
|
|
if (dComIfG_Bgsp().LineCross(&p_line) != 0) {
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 80A491A4-80A4932C 000304 0188+00 29/29 0/0 0/0 .text anm_init__FP12npc_ks_classifUcf */
|
|
static void anm_init(npc_ks_class* i_this, int param_2, f32 i_morf, u8 i_attr, f32 i_rate) {
|
|
// NONMATCHING - REGALLOC
|
|
if (i_this->field_0x94c != 0 && (param_2 == 51 || param_2 == 53)) {
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
param_2 = 11;
|
|
} else {
|
|
param_2 = 56;
|
|
}
|
|
}
|
|
|
|
int i_index = param_2;
|
|
if (i_this->field_0xc17 != 0) {
|
|
if (param_2 == 51) {
|
|
i_index = 52;
|
|
} else if (param_2 == 8) {
|
|
i_index = 9;
|
|
} else if (param_2 == 28) {
|
|
i_index = 29;
|
|
} else if (param_2 == 26) {
|
|
i_index = 27;
|
|
} else if (param_2 == 8) {
|
|
i_index = 9;
|
|
} else if (param_2 == 7) {
|
|
i_index = 10;
|
|
} else if (param_2 == 43) {
|
|
i_index = 40;
|
|
} else if (param_2 == 39) {
|
|
i_index = 42;
|
|
} else if (param_2 == 39) {
|
|
i_index = 42;
|
|
} else {
|
|
dComIfGs_shake_kandelaar();
|
|
}
|
|
}
|
|
|
|
i_this->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes(i_this->mResName, i_index), i_attr, i_morf, i_rate, 0.0f, -1.0f);
|
|
i_this->field_0x5d0 = param_2;
|
|
}
|
|
|
|
/* 80A4932C-80A49660 00048C 0334+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */
|
|
static int nodeCallBack(J3DJoint* i_joint, int param_2) {
|
|
if (param_2 == 0) {
|
|
int jointNo = i_joint->getJntNo();
|
|
J3DModel* model = j3dSys.getModel();
|
|
npc_ks_class* npc_ks_p = (npc_ks_class*)model->getUserArea();
|
|
|
|
if (npc_ks_p != NULL) {
|
|
if (npc_ks_p->field_0x5fc == 1 && jointNo == 3) {
|
|
MTXCopy(model->getAnmMtx(jointNo), *calc_mtx);
|
|
cMtx_YrotM(*calc_mtx, -npc_ks_p->field_0x5fe);
|
|
cMtx_XrotM(*calc_mtx, -(npc_ks_p->field_0x5fe / 2));
|
|
cMtx_ZrotM(*calc_mtx, npc_ks_p->field_0x600);
|
|
model->setAnmMtx(jointNo, *calc_mtx);
|
|
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
|
|
|
|
} else if (npc_ks_p->field_0x5fc >= 2 && (jointNo == 3 || jointNo == 4)) {
|
|
MTXCopy(model->getAnmMtx(jointNo), *calc_mtx);
|
|
if (jointNo == 3) {
|
|
cMtx_YrotM(*calc_mtx, -(npc_ks_p->field_0x5fe / 2));
|
|
cMtx_XrotM(*calc_mtx, -(npc_ks_p->field_0x5fe / 2));
|
|
} else {
|
|
cMtx_YrotM(*calc_mtx, -npc_ks_p->field_0x5fe);
|
|
}
|
|
|
|
model->setAnmMtx(jointNo, *calc_mtx);
|
|
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
|
|
}
|
|
|
|
if (npc_ks_p->field_0x5fc >= 2 && (jointNo == 1 || jointNo == 2)) {
|
|
MTXCopy(model->getAnmMtx(jointNo), *calc_mtx);
|
|
if (jointNo == 2) {
|
|
cMtx_YrotM(*calc_mtx, npc_ks_p->field_0x602 / 2);
|
|
} else {
|
|
cMtx_YrotM(*calc_mtx, npc_ks_p->field_0x602);
|
|
}
|
|
|
|
cMtx_XrotM(*calc_mtx, -npc_ks_p->field_0x5fe);
|
|
model->setAnmMtx(jointNo, *calc_mtx);
|
|
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
|
|
}
|
|
|
|
if (jointNo == 15) {
|
|
MTXCopy(model->getAnmMtx(jointNo), *calc_mtx);
|
|
cMtx_ZrotM(*calc_mtx, npc_ks_p->field_0x606);
|
|
model->setAnmMtx(jointNo, *calc_mtx);
|
|
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
|
|
}
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 80A49660-80A49848 0007C0 01E8+00 1/0 0/0 0/0 .text daNpc_Ks_Draw__FP12npc_ks_class */
|
|
static int daNpc_Ks_Draw(npc_ks_class* npc_ks) {
|
|
fopAc_ac_c* a_this = &npc_ks->actor;
|
|
if (npc_ks->field_0xbd7 != 0) {
|
|
npc_ks->field_0xbd7 = 0;
|
|
return 1;
|
|
}
|
|
|
|
J3DModel* model = npc_ks->mpModelMorf->getModel();
|
|
if (npc_ks->mResName == "Npc_kst") {
|
|
g_env_light.settingTevStruct(4, &a_this->current.pos, &a_this->tevStr);
|
|
} else {
|
|
g_env_light.settingTevStruct(0, &a_this->current.pos, &a_this->tevStr);
|
|
}
|
|
|
|
g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr);
|
|
|
|
if (npc_ks->field_0x5e4 != 0) {
|
|
npc_ks->mBtp2->entry(model->getModelData());
|
|
} else {
|
|
npc_ks->mBtp1->entry(model->getModelData());
|
|
}
|
|
npc_ks->mpModelMorf->entryDL();
|
|
|
|
if (npc_ks->field_0xc17 != 0) {
|
|
g_env_light.setLightTevColorType_MAJI(npc_ks->field_0xc00, &a_this->tevStr);
|
|
mDoExt_modelUpdateDL(npc_ks->field_0xc00);
|
|
}
|
|
|
|
if (npc_ks->field_0xbfc != NULL) {
|
|
g_env_light.setLightTevColorType_MAJI(npc_ks->field_0xbfc, &a_this->tevStr);
|
|
mDoExt_modelUpdateDL(npc_ks->field_0xbfc);
|
|
}
|
|
|
|
cXyz sp28;
|
|
sp28.set(a_this->current.pos.x, a_this->current.pos.y + 100.0f, a_this->current.pos.z);
|
|
npc_ks->mShadowKey = dComIfGd_setShadow(npc_ks->mShadowKey, 1, model, &sp28, 1000.0f, 0.0f, a_this->current.pos.y,
|
|
npc_ks->mObjAcch.GetGroundH(), npc_ks->mObjAcch.m_gnd, &a_this->tevStr,
|
|
0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
|
if (npc_ks->field_0xc17 != 0) {
|
|
dComIfGd_addRealShadow(npc_ks->mShadowKey, npc_ks->field_0xc00);
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 80A49848-80A498B4 0009A8 006C+00 2/2 0/0 0/0 .text s_resq_sub__FPvPv */
|
|
static void* s_resq_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_KS) {
|
|
((npc_ks_class*)i_actor)->field_0x94c = cM_rndF(50.0f) + 220.0f;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
UNK_REL_BSS;
|
|
|
|
/* 80A5FE88-80A5FE94 000048 000C+00 0/1 0/0 0/0 .bss @4022 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_4022[12];
|
|
#pragma pop
|
|
|
|
/* 80A5FE94-80A5FEA0 000054 000C+00 1/5 0/0 0/0 .bss obj_pos */
|
|
static cXyz obj_pos;
|
|
|
|
/* 80A5FEA0-80A5FEA4 000060 0004+00 4/9 0/0 0/0 .bss leader */
|
|
static npc_ks_class* leader;
|
|
|
|
/* 80A5FEA4-80A5FEA8 000064 0004+00 7/9 0/0 0/0 .bss call_pt */
|
|
static u8 call_pt[4];
|
|
|
|
/* 80A5FEA8-80A5FEAC 000068 0004+00 1/2 0/0 0/0 .bss None */
|
|
static u8 data_80A5FEA8[4];
|
|
|
|
/* 80A5FEAC-80A5FEB8 00006C 000C+00 0/1 0/0 0/0 .bss @4025 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_4025[12];
|
|
#pragma pop
|
|
|
|
/* 80A5FEB8-80A5FEF0 000078 0038+00 16/22 0/0 0/0 .bss l_HIO */
|
|
static daNpc_Ks_HIO_c l_HIO;
|
|
|
|
/* 80A5FEF0-80A5FF18 0000B0 0028+00 4/6 0/0 0/0 .bss target_info */
|
|
static void* target_info[10];
|
|
|
|
/* 80A5FF18-80A5FF1C 0000D8 0004+00 4/6 0/0 0/0 .bss target_info_count */
|
|
static int target_info_count;
|
|
|
|
/* 80A498B4-80A49930 000A14 007C+00 1/1 0/0 0/0 .text s_b_sub__FPvPv */
|
|
static void* s_b_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) &&
|
|
!((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) {
|
|
target_info[target_info_count] = i_actor;
|
|
target_info_count++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A5FF1C-80A5FF44 0000DC 0028+00 0/2 0/0 0/0 .bss target_bgc */
|
|
static int target_bgc[10];
|
|
|
|
/* 80A49930-80A49B48 000A90 0218+00 2/2 0/0 0/0 .text search_bomb__FP12npc_ks_classi */
|
|
static fopAc_ac_c* search_bomb(npc_ks_class* i_this, int param_2) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
target_info_count = 0;
|
|
for (int i = 0; i < 10; i++) {
|
|
target_info[i] = NULL;
|
|
target_bgc[i] = 0;
|
|
}
|
|
|
|
fpcM_Search(s_b_sub, i_this);
|
|
f32 fVar1 = 50.0f;
|
|
|
|
if (target_info_count != 0) {
|
|
cXyz sp4c, sp58;
|
|
fopAc_ac_c* actor_p;
|
|
int i = 0;
|
|
while (i < target_info_count) {
|
|
actor_p = (fopAc_ac_c*)target_info[i];
|
|
sp4c.x = actor_p->current.pos.x - a_this->eyePos.x;
|
|
sp4c.y = (actor_p->current.pos.y + 50.0f) - a_this->eyePos.y;
|
|
sp4c.z = actor_p->current.pos.z - a_this->eyePos.z;
|
|
f32 fVar2 = JMAFastSqrt(sp4c.x * sp4c.x + sp4c.z * sp4c.z);
|
|
if (fVar2 < fVar1) {
|
|
if (param_2 == 0) {
|
|
return actor_p;
|
|
}
|
|
|
|
if (target_bgc[i] != 0 || fopAcM_otherBgCheck(a_this, actor_p)) {
|
|
target_bgc[i] = 1;
|
|
} else if (fabsf(sp4c.y) <= 300.0f) {
|
|
s16 sVar1 = a_this->shape_angle.y - cM_atan2s(sp4c.x, sp4c.z);
|
|
if (sVar1 < 0) {
|
|
sVar1 = -sVar1;
|
|
}
|
|
|
|
if ((u16)sVar1 < 20000) {
|
|
return actor_p;
|
|
}
|
|
}
|
|
}
|
|
|
|
i++;
|
|
if (i == target_info_count) {
|
|
i = 0;
|
|
fVar1 += 100.0f;
|
|
if (fVar1 > 1500.0f) {
|
|
return NULL;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
return NULL;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A49B48-80A49B6C 000CA8 0024+00 1/1 0/0 0/0 .text bomb_view_check__FP12npc_ks_class */
|
|
static fopAc_ac_c* bomb_view_check(npc_ks_class* i_this) {
|
|
return search_bomb(i_this, 1);
|
|
}
|
|
|
|
/* 80A49B6C-80A49B90 000CCC 0024+00 1/1 0/0 0/0 .text bomb_check__FP12npc_ks_class */
|
|
static fopAc_ac_c* bomb_check(npc_ks_class* i_this) {
|
|
return search_bomb(i_this, 0);
|
|
}
|
|
|
|
/* 80A49B90-80A49C00 000CF0 0070+00 1/1 0/0 0/0 .text s_e_sub__FPvPv */
|
|
static void* s_e_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && ((npc_ks_class*)i_actor)->actor.field_0x566 != 0 && target_info_count < 10) {
|
|
target_info[target_info_count] = i_actor;
|
|
target_info_count++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A49C00-80A49E78 000D60 0278+00 2/2 0/0 0/0 .text search_enemy__FP12npc_ks_classif */
|
|
static fopAc_ac_c* search_enemy(npc_ks_class* i_this, int param_2, f32 param_3) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
if (dComIfGp_event_runCheck()) {
|
|
daMidna_c* midnaActor = daPy_py_c::getMidnaActor();
|
|
if (fopAcM_getTalkEventPartner(daPy_getLinkPlayerActorClass()) != (fopAc_ac_c *)midnaActor) {
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
target_info_count = 0;
|
|
for (int i = 0; i < 10; i++) {
|
|
target_info[i] = NULL;
|
|
target_bgc[i] = 0;
|
|
}
|
|
|
|
fpcM_Search(s_e_sub, i_this);
|
|
f32 fVar1 = 50.0f;
|
|
f32 fVar2 = 300.0f;
|
|
if (fopAcM_GetRoomNo(a_this) == 1) {
|
|
fVar2 = 800.0f;
|
|
}
|
|
|
|
if (target_info_count != 0) {
|
|
cXyz sp68;
|
|
int i = 0;
|
|
while (i < target_info_count) {
|
|
fopAc_ac_c* pEnemy = (fopAc_ac_c*)target_info[i];
|
|
sp68.x = pEnemy->current.pos.x - a_this->eyePos.x;
|
|
sp68.y = (pEnemy->current.pos.y + 50.0f) - a_this->eyePos.y;
|
|
sp68.z = pEnemy->current.pos.z - a_this->eyePos.z;
|
|
f32 fVar3 = JMAFastSqrt(sp68.x * sp68.x + sp68.z * sp68.z);
|
|
if (fVar3 < fVar1) {
|
|
if (param_2 == 0) {
|
|
return pEnemy;
|
|
}
|
|
|
|
if (target_bgc[i] != 0 || fopAcM_otherBgCheck(a_this, pEnemy)) {
|
|
target_bgc[i] = 1;
|
|
} else if (fabsf(sp68.y) <= fVar2) {
|
|
s16 sVar1 = a_this->shape_angle.y - cM_atan2s(sp68.x, sp68.z);
|
|
if (sVar1 < 0) {
|
|
sVar1 = -sVar1;
|
|
}
|
|
|
|
if ((u16)sVar1 < 20000) {
|
|
return pEnemy;
|
|
}
|
|
}
|
|
}
|
|
|
|
i++;
|
|
if (i == target_info_count) {
|
|
i = 0;
|
|
fVar1 += 50.0f;
|
|
if (fVar1 > param_3) {
|
|
return NULL;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
return NULL;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A49E78-80A49E9C 000FD8 0024+00 7/7 0/0 0/0 .text enemy_view_check__FP12npc_ks_classf */
|
|
static fopAc_ac_c* enemy_view_check(npc_ks_class* i_this, f32 param_2) {
|
|
return search_enemy(i_this, 1, param_2);
|
|
}
|
|
|
|
/* 80A49E9C-80A49EC0 000FFC 0024+00 8/8 0/0 0/0 .text enemy_check__FP12npc_ks_classf */
|
|
static fopAc_ac_c* enemy_check(npc_ks_class* i_this, f32 param_2) {
|
|
return search_enemy(i_this, 0, param_2);
|
|
}
|
|
|
|
/* 80A49EC0-80A49F30 001020 0070+00 1/1 0/0 0/0 .text s_en_sub__FPvPv */
|
|
static void* s_en_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && ((npc_ks_class*)i_actor)->actor.field_0x560 != 0 && target_info_count < 10) {
|
|
target_info[target_info_count] = i_actor;
|
|
target_info_count++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A49F30-80A4A164 001090 0234+00 1/1 0/0 0/0 .text en_search_test__FP12npc_ks_class */
|
|
static fopAc_ac_c* en_search_test(npc_ks_class* i_this) {
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
target_info_count = 0;
|
|
for (int i = 0; i < 10; i++) {
|
|
target_info[i] = NULL;
|
|
}
|
|
|
|
fpcM_Search(s_en_sub, i_this);
|
|
|
|
f32 fVar1 = 50.0f;
|
|
if (target_info_count != 0) {
|
|
cXyz sp4c;
|
|
int i = 0;
|
|
while (i < target_info_count) {
|
|
fopAc_ac_c* actor_p = (fopAc_ac_c*)target_info[i];
|
|
sp4c = actor_p->current.pos - a_this->current.pos;
|
|
if (sp4c.abs() < fVar1) {
|
|
return actor_p;
|
|
}
|
|
|
|
i++;
|
|
if (i == target_info_count) {
|
|
i = 0;
|
|
fVar1 += 50.0f;
|
|
if (fVar1 > 350.0f) {
|
|
return NULL;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
return NULL;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4A164-80A4A1B0 0012C4 004C+00 2/2 0/0 0/0 .text s_ori_sub__FPvPv */
|
|
static void* s_ori_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_OBJ_SO) {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4A1B0-80A4A544 001310 0394+00 1/1 0/0 0/0 .text npc_ks_pole_ori__FP12npc_ks_class */
|
|
static void npc_ks_pole_ori(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
if (leader != NULL) {
|
|
if (i_this->mMode == 0) {
|
|
obj_so_class* cage_p = (obj_so_class*)fpcM_Search(s_ori_sub, i_this);
|
|
if (cage_p == NULL) {
|
|
return;
|
|
}
|
|
|
|
a_this->parentActorID = fopAcM_GetID(cage_p);
|
|
anm_init(i_this, 20, 5.0f, 2, 1.0f);
|
|
i_this->mMode++;
|
|
i_this->mMode = 1;
|
|
}
|
|
|
|
obj_so_class* cage_p = (obj_so_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
if (cage_p != NULL) {
|
|
if (cage_p->health == 0) {
|
|
i_this->mActionID = 201;
|
|
i_this->mMode = 10;
|
|
dComIfGs_onTbox(i_this->field_0x5bc);
|
|
} else {
|
|
if (i_this->mMode < 10 && cage_p->field_0xdae != 0) {
|
|
i_this->mMode = 10;
|
|
i_this->mpModelMorf->setPlaySpeed(0.0f);
|
|
}
|
|
|
|
if (((i_this->mMode != 10 && i_this->mMode < 10) && i_this->mMode == 1) &&
|
|
(i_this->mpModelMorf->checkFrame(5.0f) || i_this->mpModelMorf->checkFrame(20.0f))) {
|
|
cage_p->field_0xdc8 += 400.0f;
|
|
cage_p->field_0xdac = 0;
|
|
i_this->mSound.startCreatureSound(Z2SE_OBJ_MONKEYJAIL_CREAK, 0, -1);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_PRISONED, -1);
|
|
}
|
|
|
|
a_this->current.angle.y = cage_p->shape_angle.y;
|
|
a_this->current.angle.x = cage_p->shape_angle.x;
|
|
a_this->current.pos = cage_p->current.pos;
|
|
|
|
if (leader->field_0xb42 == 0) {
|
|
if (!dComIfGs_isSwitch(20, fopAcM_GetRoomNo(a_this))) {
|
|
cXyz sp2c(11497.0f, 3764.0f, 3810.0f);
|
|
sp2c -= dComIfGp_getPlayer(0)->current.pos;
|
|
sp2c.y = 0.0f;
|
|
if (sp2c.abs() < 300.0f) {
|
|
leader->field_0xb42 = 110;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80A4A544-80A4AAC8 0016A4 0584+00 2/1 0/0 0/0 .text npc_ks_ori__FP12npc_ks_class */
|
|
static int npc_ks_ori(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
|
cXyz sp30, sp3c;
|
|
int rv = 0;
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
anm_init(i_this, 21, 10.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
i_this->mTimers[0] = cM_rndF(200.0f) + 100.0f;
|
|
break;
|
|
|
|
case 1:
|
|
if (i_this->mpModelMorf->checkFrame(5.0f) || i_this->mpModelMorf->checkFrame(20.0f)) {
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_PRISONED, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_OBJ_MONKEYJAIL_CREAK, 0, -1);
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0 && i_this->mpModelMorf->checkFrame(99.0f)) {
|
|
i_this->mMode = 2;
|
|
anm_init(i_this, 7, 5.0f, 0, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(60.0f) + 40.0f;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 0;
|
|
} else {
|
|
anm_init(i_this, 7, 5.0f, 0, 1.0f);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
cMtx_YrotS(*calc_mtx, a_this->current.angle.y);
|
|
sp30.x = 0.0f;
|
|
sp30.y = 0.0f;
|
|
sp30.z = a_this->speedF;
|
|
MtxPosition(&sp30, &sp3c);
|
|
a_this->current.pos += sp3c;
|
|
|
|
if (i_this->mTimers[1] == 1) {
|
|
a_this->speedF = 0.0f;
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
a_this->health = 0;
|
|
i_this->mActionID = 100;
|
|
i_this->mTimers[0] = 20;
|
|
i_this->mMode = 11;
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
fopAcM_setStageLayer(i_this);
|
|
fpcM_Search(s_resq_sub, i_this);
|
|
}
|
|
break;
|
|
|
|
case 11:
|
|
rv = 1;
|
|
if (i_this->mTimers[1] != 0) {
|
|
a_this->speedF = -20.0f;
|
|
} else {
|
|
a_this->speedF = 0.0f;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 50) {
|
|
anm_init(i_this, 11, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 15;
|
|
i_this->mMode++;
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
rv = 1;
|
|
if (i_this->mTimers[0] == 1) {
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
if (fopAcM_GetRoomNo(a_this) == 11) {
|
|
a_this->current.angle.y += 0x1600;
|
|
}
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 26) {
|
|
a_this->speedF = 20.0f;
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 32 && i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
a_this->speed.y = 35.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
i_this->mMode++;
|
|
i_this->mTimers[0] = 50;
|
|
}
|
|
break;
|
|
|
|
case 13:
|
|
rv = 1;
|
|
a_this->gravity = -5.0f;
|
|
if (i_this->mTimers[0] == 0 || !dComIfGp_event_runCheck()) {
|
|
fopAcM_delete(a_this);
|
|
}
|
|
}
|
|
|
|
if (i_this->mMode < 10) {
|
|
int swBit = fopAcM_GetParam(a_this) >> 24;
|
|
if (swBit != 0xFF) {
|
|
if (dComIfGs_isSwitch(swBit, fopAcM_GetRoomNo(a_this))) {
|
|
dComIfGs_onTbox(i_this->field_0x5bc);
|
|
if (i_this->field_0x5b6 >= 5) {
|
|
i_this->mMode = 11;
|
|
i_this->mTimers[0] = 80;
|
|
anm_init(i_this, 51 ,5.0f, 2, 1.0f);
|
|
if (fopAcM_GetRoomNo(a_this) == 11) {
|
|
i_this->mTimers[1] = 10;
|
|
}
|
|
} else {
|
|
i_this->mMode = 10;
|
|
a_this->speedF = -10.0f;
|
|
i_this->mTimers[0] = 110;
|
|
i_this->mTimers[1] = 15;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
i_this->field_0x5fc = 0;
|
|
}
|
|
|
|
return rv;
|
|
}
|
|
|
|
/* 80A4AAC8-80A4AC68 001C28 01A0+00 1/1 0/0 0/0 .text shot_bo_sub__FPvPv */
|
|
static void* shot_bo_sub(void* i_actor, void* i_data) {
|
|
if (fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_BOOMERANG &&
|
|
dComIfGp_checkPlayerStatus0(0, 0x80000) == 0 && fopAcM_GetParam(i_actor) == 1) {
|
|
cXyz sp28(((daBoomerang_c*)i_actor)->current.pos - ((fopAc_ac_c*)i_data)->current.pos);
|
|
if (sp28.abs() < 1000.0f) {
|
|
return i_actor;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4AC68-80A4B7BC 001DC8 0B54+00 2/1 0/0 0/0 .text npc_ks_ori2__FP12npc_ks_class */
|
|
static int npc_ks_ori2(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
int rv = 1;
|
|
if (i_this->mMode == 0) {
|
|
fopAc_ac_c* actor_p = (fopAc_ac_c*)fpcM_Search(s_ori_sub, i_this);
|
|
if (actor_p != NULL) {
|
|
a_this->parentActorID = fopAcM_GetID(actor_p);
|
|
anm_init(i_this, 20, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
a_this->home.angle.y = actor_p->shape_angle.y;
|
|
i_this->field_0xbde = i_this->field_0x5c8 - a_this->home.angle.y;
|
|
}
|
|
|
|
return rv;
|
|
}
|
|
|
|
obj_so_class* cage_p = (obj_so_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
if (cage_p == NULL) {
|
|
return rv;
|
|
}
|
|
|
|
a_this->home.angle.y = cage_p->shape_angle.y;
|
|
|
|
if (i_this->mMode <= 2 && cage_p->field_0x1054 != 0) {
|
|
i_this->mMode = 3;
|
|
i_this->mTimers[0] = 90;
|
|
int swBit = fopAcM_GetParam(a_this) >> 24;
|
|
dComIfGs_onSwitch(swBit, fopAcM_GetRoomNo(a_this));
|
|
dComIfGs_onTbox(i_this->field_0x5bc);
|
|
|
|
s8 roomNo = fopAcM_GetRoomNo(a_this);
|
|
if (roomNo == 4) {
|
|
i_this->field_0xb42 = 70;
|
|
} else if (roomNo == 19) {
|
|
i_this->field_0xb42 = 75;
|
|
} else if (roomNo == 22) {
|
|
i_this->field_0xb42 = 72;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
cXyz sp40;
|
|
s16 sVar1 = i_this->field_0xbde + (a_this->home.angle.y - 1000);
|
|
// sVar1 += -1000;
|
|
f32 fVar1 = 0.0f;
|
|
switch (i_this->mMode) {
|
|
case 1:
|
|
if (i_this->mpModelMorf->checkFrame(46.0f)) {
|
|
i_this->field_0xbde = i_this->field_0x5c8 - a_this->home.angle.y & 0xE000;
|
|
}
|
|
|
|
if (i_this->mpModelMorf->checkFrame(5.0f) || i_this->mpModelMorf->checkFrame(20.0f)) {
|
|
cage_p->field_0xdc8 += 100.0f;
|
|
cage_p->field_0xdac = 0;
|
|
i_this->mSound.startCreatureSound(Z2SE_OBJ_MONKEYJAIL_CREAK, 0, -1);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_POINT, -1);
|
|
}
|
|
|
|
if (enemy_check(i_this, 400.0f) == NULL) {
|
|
if (daPy_getPlayerActorClass()->getCutAtFlg() == 0 && fpcM_Search(shot_bo_sub, i_this) == NULL) break;
|
|
}
|
|
|
|
anm_init(i_this, 41, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 2;
|
|
i_this->mTimers[0] = cM_rndF(20.0f) + 40.0f;
|
|
break;
|
|
|
|
case 2:
|
|
sVar1 += -0x8000;
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (cage_p->partBreak()) {
|
|
anm_init(i_this, 22, 5.0f, 2, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 20, 5.0f, 2, 1.0f);
|
|
}
|
|
|
|
i_this->mMode = 1;
|
|
} else {
|
|
if (enemy_check(i_this, 400.0f) == NULL) {
|
|
if (daPy_getPlayerActorClass()->getCutAtFlg() == 0) break;
|
|
}
|
|
|
|
i_this->mTimers[0] = cM_rndF(20.0f) + 40.0f;
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
fVar1 = -20.0f;
|
|
if (i_this->mTimers[0] == 50) {
|
|
anm_init(i_this, 51, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (i_this->mTimers[0] < 50) {
|
|
cMtx_YrotS(*calc_mtx, a_this->shape_angle.y);
|
|
if (i_this->mTimers[0] < 25) {
|
|
sp40.x = 200.0f;
|
|
} else {
|
|
sp40.x = -200.0f;
|
|
}
|
|
sp40.y = 50.0f;
|
|
sp40.z = 50.0f;
|
|
MtxPosition(&sp40, &i_this->field_0x940);
|
|
i_this->field_0x940 += a_this->current.pos;
|
|
i_this->field_0x93c = 20;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 30, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 4;
|
|
i_this->mTimers[0] = 60;
|
|
i_this->field_0x93c = 0;
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
fVar1 = -20.0f;
|
|
i_this->field_0x5fc = 0;
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (fopAcM_GetRoomNo(a_this) == 22) {
|
|
i_this->mActionID = 116;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 1;
|
|
} else if (fopAcM_GetRoomNo(a_this) == 4) {
|
|
i_this->mMode = 10;
|
|
} else {
|
|
i_this->mMode = 5;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
i_this->field_0x5fc = 0;
|
|
fVar1 = -20.0f;
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
i_this->mMode++;
|
|
break;
|
|
|
|
case 6:
|
|
i_this->field_0x5fc = 0;
|
|
fVar1 = -20.0f;
|
|
sVar1 += 0x2000;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
a_this->speed.y = 35.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
i_this->mMode++;
|
|
}
|
|
break;
|
|
|
|
case 7:
|
|
i_this->field_0x5fc = 0;
|
|
a_this->gravity = -5.0f;
|
|
sVar1 += 0x4000;
|
|
break;
|
|
|
|
case 10:
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 11;
|
|
i_this->field_0x904 = 0;
|
|
a_this->speedF = 0.0f;
|
|
// fallthrough
|
|
case 11:
|
|
if ((int)guide_path_04[i_this->field_0x904 * 13] != 0) {
|
|
i_this->field_0x8f0.x = guide_path_04[i_this->field_0x904 * 13 + 1];
|
|
i_this->field_0x8f0.y = guide_path_04[i_this->field_0x904 * 13 + 2];
|
|
i_this->field_0x8f0.z = guide_path_04[i_this->field_0x904 * 13 + 3];
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
i_this->mMode = 12;
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
a_this->speedF = 0.0f;
|
|
} else {
|
|
i_this->field_0x8f0.x = guide_path_04[i_this->field_0x904 * 13 + 1];
|
|
i_this->field_0x8f0.z = guide_path_04[i_this->field_0x904 * 13 + 3];
|
|
i_this->mMode = 15;
|
|
a_this->speedF = l_HIO.field_0x1c;
|
|
if (i_this->field_0x5d0 != 26) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
rv = 2;
|
|
if (i_this->field_0x5d0 == 32 && i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
}
|
|
|
|
sp40 = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp40.x, sp40.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp40.x, JMAFastSqrt(sp40.x * sp40.x + sp40.z * sp40.z));
|
|
if (sp40.abs() < (a_this->speedF * 1.2f)) {
|
|
a_this->current.pos = i_this->field_0x8f0;
|
|
i_this->mMode = 11;
|
|
i_this->field_0xbe0 = 1;
|
|
i_this->field_0x904++;
|
|
if ((int)guide_path_04[i_this->field_0x904 * 13] < 0) {
|
|
fopAcM_delete(a_this);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 15:
|
|
sp40.x = i_this->field_0x8f0.x - a_this->current.pos.x;
|
|
sp40.z = i_this->field_0x8f0.z - a_this->current.pos.z;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp40.x, sp40.z);
|
|
if (JMAFastSqrt(sp40.x * sp40.x + sp40.z * sp40.z) < (a_this->speedF * 1.2f)) {
|
|
i_this->field_0x904++;
|
|
i_this->mMode = 11;
|
|
}
|
|
}
|
|
|
|
if (i_this->mMode >= 10) {
|
|
i_this->field_0x5fc = 0;
|
|
sVar1 = i_this->field_0x8fc.y;
|
|
if (a_this->speedF > 25.0f) {
|
|
i_this->field_0x90c = 1;
|
|
}
|
|
}
|
|
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, sVar1, 2, 0x2000);
|
|
|
|
if (i_this->mMode < 7) {
|
|
a_this->current.angle.x = cage_p->shape_angle.x;
|
|
a_this->current.pos = cage_p->current.pos;
|
|
a_this->current.pos.y += fVar1;
|
|
}
|
|
|
|
return rv;
|
|
}
|
|
|
|
/* 80A4B7BC-80A4BA14 00291C 0258+00 1/1 0/0 0/0 .text npc_ks_home__FP12npc_ks_class */
|
|
static void npc_ks_home(npc_ks_class* i_this) {
|
|
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
|
cXyz sp2c, sp38;
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
anm_init(i_this, 30, 3.0f, 0, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 5, 3.0f, 0, 1.0f);
|
|
}
|
|
|
|
i_this->mMode = 1;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_WAIT, -1);
|
|
break;
|
|
|
|
case 1:
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 0;
|
|
}
|
|
}
|
|
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x5c8, 2, 0x800);
|
|
if (checkDoorDemo() != 0) {
|
|
s16 roomNo = fopAcM_GetRoomNo(a_this);
|
|
int nextStayNo = dStage_roomControl_c::getNextStayNo();
|
|
if (roomNo == 0 && nextStayNo == 4) {
|
|
i_this->mActionID = 100;
|
|
i_this->mMode = 0;
|
|
i_this->field_0x904 = 0;
|
|
i_this->field_0xaec = 1;
|
|
if (fopAcM_CheckCondition(a_this, 4) != 0) {
|
|
camera_class* camera = dComIfGp_getCamera(0);
|
|
sp2c.x = camera->lookat.eye.x - camera->lookat.center.x;
|
|
sp2c.z = camera->lookat.eye.z - camera->lookat.center.z;
|
|
cMtx_YrotS(*calc_mtx, cM_atan2s(sp2c.x, sp2c.z));
|
|
if ((i_this->field_0x5b6 & 1) != 0) {
|
|
sp2c.x = 100.0f;
|
|
} else {
|
|
sp2c.x = -100.0f;
|
|
}
|
|
sp2c.y = -50.0f;
|
|
sp2c.z = 200.0f;
|
|
MtxPosition(&sp2c, &sp38);
|
|
a_this->current.pos = camera->lookat.eye + sp38;
|
|
a_this->old = a_this->current;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80A4BA14-80A4BA90 002B74 007C+00 3/3 0/0 0/0 .text s_sw_sub__FPvPv */
|
|
static void* s_sw_sub(void* i_actor, void* i_data) {
|
|
// NONMATCHING
|
|
if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_OBJ_SW) &&
|
|
(fopAcM_GetRoomNo((fopAc_ac_c*)i_data) == 0 && ((npc_ks_class*)i_data)->field_0x5b6 == ((obj_sw_class*)i_actor)->field_0x570)) {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4BA90-80A4BADC 002BF0 004C+00 1/1 0/0 0/0 .text s_ha_sub__FPvPv */
|
|
static void* s_ha_sub(void* i_actor, void* i_data) {
|
|
if (fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_Obj_Pillar) {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4BADC-80A4BB34 002C3C 0058+00 1/1 0/0 0/0 .text s_01_sub__FPvPv */
|
|
static void* s_01_sub(void* i_actor, void* i_data) {
|
|
if (fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_KS && ((npc_ks_class*)i_actor)->mActionID == 4) {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4BB34-80A4CA70 002C94 0F3C+00 2/1 0/0 0/0 .text npc_ks_demo_02__FP12npc_ks_class */
|
|
static int npc_ks_demo_02(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
cXyz sp3c, sp48;
|
|
f32 fVar1 = 0.0f;
|
|
int rv = 1;
|
|
int iVar1 = 0;
|
|
|
|
obj_so_class* cage_p = (obj_so_class*)fopAcM_SearchByName(PROC_OBJ_SO);
|
|
if (cage_p == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
if (cage_p->field_0xdae != 0 && i_this->mMode < 17) {
|
|
i_this->mActionID = 201;
|
|
i_this->mMode = 0;
|
|
return 0;
|
|
}
|
|
|
|
daPillar_c* pillar_p = (daPillar_c*)fpcM_Search(s_ha_sub, i_this);
|
|
if (pillar_p == NULL) {
|
|
return 0;
|
|
}
|
|
|
|
f32 fVar3;
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
i_this->field_0x904 = 0;
|
|
// fallthrough
|
|
case 1:
|
|
i_this->field_0x8f0.x = move_path_02[i_this->field_0x904 * 13 + 1];
|
|
i_this->field_0x8f0.y = move_path_02[i_this->field_0x904 * 13 + 2];
|
|
i_this->field_0x8f0.z = move_path_02[i_this->field_0x904 * 13 + 3];
|
|
i_this->mMode = 2;
|
|
// fallthrough
|
|
case 2:
|
|
fVar1 = l_HIO.field_0x18;
|
|
sp3c = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp3c.x, sp3c.z);
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x8fc.y, 2, 0x1000);
|
|
sp3c.y = 0.0f;
|
|
if (sp3c.abs() <= a_this->speedF * 2.0f) {
|
|
i_this->field_0x904++;
|
|
if (i_this->field_0x904 < 5) {
|
|
i_this->mMode = 1;
|
|
} else {
|
|
i_this->mMode = 10;
|
|
anm_init(i_this, 25, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 35;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, cage_p->shape_angle.y + 0x8000, 2, 0x1000);
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 11;
|
|
anm_init(i_this, 26, 5.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 11:
|
|
rv = 0;
|
|
cMtx_YrotS(*calc_mtx, cage_p->shape_angle.y);
|
|
sp3c.x = 0.0f;
|
|
sp3c.y = 0.0f;
|
|
sp3c.z = cage_p->scale.x * 90.0f;
|
|
MtxPosition(&sp3c, &sp48);
|
|
sp48 += cage_p->current.pos;
|
|
cLib_addCalc2(&a_this->current.pos.x, sp48.x, 1.0f, a_this->speedF);
|
|
cLib_addCalc2(&a_this->current.pos.z, sp48.z, 1.0f, a_this->speedF);
|
|
sp3c.x = sp48.x - a_this->current.pos.x;
|
|
sp3c.z = sp48.z - a_this->current.pos.z;
|
|
sp3c.y = JMAFastSqrt(sp3c.x * sp3c.x + sp3c.z * sp3c.z);
|
|
if (sp3c.y < 55.0f && i_this->field_0x5d0 != 12) {
|
|
anm_init(i_this, 12, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (sp3c.y < 1.0f) {
|
|
i_this->mMode = 12;
|
|
a_this->current.angle.y = cage_p->shape_angle.y + 0x8000;
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
rv = 0;
|
|
iVar1 = 1;
|
|
cMtx_YrotS(*calc_mtx, cage_p->shape_angle.y);
|
|
sp3c.x = 0.0f;
|
|
sp3c.y = 0.0f;
|
|
sp3c.z = 90.0f;
|
|
MtxPosition(&sp3c, &sp48);
|
|
sp48 += cage_p->current.pos;
|
|
cLib_addCalc2(&a_this->current.pos.x, sp48.x, 1.0f, a_this->speedF);
|
|
cLib_addCalc2(&a_this->current.pos.y, sp48.y, 1.0f, a_this->speedF);
|
|
cLib_addCalc2(&a_this->current.pos.z, sp48.z, 1.0f, a_this->speedF);
|
|
sp3c = sp48 - a_this->current.pos;
|
|
if (sp3c.abs() < 1.0f) {
|
|
i_this->mMode = 13;
|
|
anm_init(i_this, 23, 2.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 60;
|
|
}
|
|
break;
|
|
|
|
case 13:
|
|
rv = 0;
|
|
iVar1 = 1;
|
|
cMtx_YrotS(*calc_mtx, cage_p->shape_angle.y);
|
|
sp3c.x = 0.0f;
|
|
sp3c.y = 0.0f;
|
|
sp3c.z = cage_p->scale.x * 90.0f;
|
|
MtxPosition(&sp3c, &sp48);
|
|
sp48 += cage_p->current.pos;
|
|
cLib_addCalc2(&a_this->current.pos.x, sp48.x, 1.0f, 10.0f);
|
|
cLib_addCalc2(&a_this->current.pos.z, sp48.z, 1.0f, 10.0f);
|
|
|
|
if (i_this->mpModelMorf->checkFrame(10.0f) || i_this->mpModelMorf->checkFrame(20.0f)) {
|
|
cage_p->field_0xdc8 += 200.0f;
|
|
i_this->mSound.startCreatureSound(Z2SE_OBJ_MONKEYJAIL_CREAK, 0, -1);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_POINT, -1);
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 14;
|
|
anm_init(i_this, 15, 2.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 14:
|
|
rv = 0;
|
|
iVar1 = 1;
|
|
cMtx_YrotS(*calc_mtx, cage_p->shape_angle.y);
|
|
sp3c.x = 0.0f;
|
|
sp3c.y = 0.0f;
|
|
sp3c.z = 90.0f;
|
|
MtxPosition(&sp3c, &sp48);
|
|
sp48 += cage_p->current.pos;
|
|
cLib_addCalc2(&a_this->current.pos.x, sp48.x, 1.0f, 10.0f);
|
|
cLib_addCalc2(&a_this->current.pos.z, sp48.x, 1.0f, 10.0f);
|
|
cLib_addCalc2(&a_this->current.pos.y, i_this->mObjAcch.GetGroundH(), 1.0f, l_HIO.field_0x18);
|
|
|
|
if (fabsf(a_this->current.pos.y - i_this->mObjAcch.GetGroundH()) < 1.0f) {
|
|
anm_init(i_this, 26, 5.0f, 2, 1.0f);
|
|
a_this->speedF = 0.0f;
|
|
i_this->mTimers[0] = 20;
|
|
i_this->mMode = 15;
|
|
}
|
|
break;
|
|
|
|
case 15:
|
|
fVar1 = l_HIO.field_0x18;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, cage_p->shape_angle.y, 2, 0x2000);
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 16;
|
|
anm_init(i_this, 25, 5.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 16:
|
|
i_this->field_0xaec = 2;
|
|
i_this->field_0x5fc = 1;
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (i_this->field_0x5d0 != 25) {
|
|
anm_init(i_this, 25, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 25;
|
|
} else {
|
|
anm_init(i_this, 50, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 30.0f;
|
|
}
|
|
}
|
|
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, cage_p->shape_angle.y + 0x8000, 2, 0x1000);
|
|
if (dComIfGp_checkPlayerStatus0(0, 0x40) != 0 || dComIfGp_checkPlayerStatus0(0, 0x2000) != 0) {
|
|
i_this->mTimers[2] = 20;
|
|
}
|
|
|
|
if (i_this->mTimers[2] == 0 && cage_p->field_0xdc4 == 0) {
|
|
fopAcM_OnStatus(a_this, 0);
|
|
cLib_onBit<u32>(a_this->attention_info.flags, 0x2000000A);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANTALK_e);
|
|
a_this->attention_info.distances[1] = 2;
|
|
a_this->attention_info.distances[3] = 2;
|
|
}
|
|
|
|
if (i_this == (npc_ks_class*)dComIfGp_getAttention().LockonTarget(0) && i_this->mTimers[2] == 0
|
|
&& mDoCPd_c::getTrigA(PAD_1) != 0) {
|
|
i_this->mMode = 17;
|
|
anm_init(i_this, 25, 2.0f, 0, 1.0f);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
a_this->speedF = 0.0f;
|
|
leader->field_0xb42 = 60;
|
|
}
|
|
break;
|
|
|
|
case 17:
|
|
rv = 0;
|
|
if (i_this->field_0x5d0 == 25) {
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 49, 3.0f, 0, 1.0f);
|
|
}
|
|
} else {
|
|
fVar1 = 30.0f;
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 49 && i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 38, 1.0f, 2, 1.0f);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_ROLL, 0, -1);
|
|
}
|
|
|
|
sp3c = pillar_p->current.pos - a_this->current.pos;
|
|
a_this->current.angle.y = cM_atan2s(sp3c.x, sp3c.z);
|
|
cMtx_YrotS(*calc_mtx, a_this->current.angle.y);
|
|
sp3c.x = 0.0f;
|
|
sp3c.y = 0.0f;
|
|
sp3c.z = a_this->speedF;
|
|
MtxPosition(&sp3c, &sp48);
|
|
a_this->current.pos += sp48;
|
|
sp3c.x = pillar_p->current.pos.x - a_this->current.pos.x;
|
|
sp3c.z = pillar_p->current.pos.z - a_this->current.pos.z;
|
|
if (JMAFastSqrt(sp3c.x * sp3c.x + sp3c.z * sp3c.z) < 90.0f) {
|
|
pillar_p->setShake(daPillar_c::SHAKE_STRONG);
|
|
anm_init(i_this, 6, 5.0f, 0, 1.0f);
|
|
i_this->mMode = 18;
|
|
a_this->speedF = -20.0f;
|
|
a_this->speed.y = 30.0f;
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_ATTACK_POLL, 0, -1);
|
|
if (cage_p != NULL) {
|
|
cage_p->field_0xdc8 = 1500.0f;
|
|
i_this->mSound.startCreatureSound(Z2SE_OBJ_MONKEYJAIL_SHAKE, 0, -1);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 18:
|
|
fVar1 = -20.0f;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, -0x3830, 1, 0x600);
|
|
if (a_this->speed.y <= 0.0f && i_this->mObjAcch.ChkGroundHit()) {
|
|
i_this->mMode = 19;
|
|
a_this->speed.y = 20.0f;
|
|
a_this->current.angle.x = -0x3830;
|
|
i_this->mTimers[0] = 40;
|
|
i_this->mTimers[1] = 10;
|
|
fopAcM_effSmokeSet1(&i_this->field_0x858, &i_this->field_0x85c, &a_this->eyePos, NULL, 1.7f, &a_this->tevStr, 1);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_CRUSHED, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_FALL_GROUND, 0, -1);
|
|
anm_init(i_this, 13, 2.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 19:
|
|
if (i_this->mTimers[1] != 0) {
|
|
fVar1 = -15.0f;
|
|
a_this->speedF = fVar1;
|
|
} else {
|
|
fVar1 = 0.0f;
|
|
a_this->speedF = fVar1;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 35, 3.0f, 0, 1.0f);
|
|
i_this->mMode = 20;
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, 0, 1, 0x800);
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 16;
|
|
anm_init(i_this, 25, 5.0f, 2, 1.0f);
|
|
if (leader->field_0xb42 != 0) {
|
|
leader->field_0xb42 = 100;
|
|
}
|
|
i_this->mTimers[2] = 30;
|
|
}
|
|
}
|
|
|
|
cLib_addCalc2(&a_this->speedF, fVar1, 1.0f, 4.0f);
|
|
if (checkDoorDemo() != 0) {
|
|
i_this->mActionID = 100;
|
|
i_this->mMode = 0;
|
|
} else if (iVar1 != 0 && cage_p->shape_angle.x > 0x200) {
|
|
anm_init(i_this, 6, 5.0f, 0, 1.0f);
|
|
i_this->mMode = 18;
|
|
a_this->speedF = -8.0f;
|
|
a_this->speed.y = 10.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_PRISONED, -1);
|
|
}
|
|
|
|
return rv;
|
|
}
|
|
|
|
/* 80A4CA70-80A4CABC 003BD0 004C+00 1/1 0/0 0/0 .text s_dn_sub__FPvPv */
|
|
static void* s_dn_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_OC) {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4CABC-80A4CF40 003C1C 0484+00 2/1 0/0 0/0 .text npc_ks_demo_022__FP12npc_ks_class */
|
|
static int npc_ks_demo_022(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
daE_OC_c* bokoblin_p = (daE_OC_c*)fpcM_Search(s_dn_sub, i_this);
|
|
int frame = i_this->mpModelMorf->getFrame();
|
|
|
|
switch(i_this->mMode) {
|
|
case 0:
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
i_this->mTimers[0] = 100;
|
|
// fallthrough
|
|
case 1:
|
|
i_this->field_0x5fc = 1;
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 20;
|
|
anm_init(i_this, 30, 3.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 90;
|
|
fpcM_Search(s_resq_sub, i_this);
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
anm_init(i_this, 13, 2.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 30;
|
|
i_this->mMode = 11;
|
|
a_this->current.angle.x = -0x3830;
|
|
// fallthrough
|
|
case 11:
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 35, 3.0f, 0, 1.0f);
|
|
i_this->mMode = 12;
|
|
mDoAud_seStart(12, 0, 0, 0);
|
|
Z2GetAudioMgr()->muteSceneBgm(120, 0.0f);
|
|
Z2GetAudioMgr()->setBattleBgmOff(true);
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, 0, 1, 0x800);
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 20;
|
|
anm_init(i_this, 30, 3.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 90;
|
|
fpcM_Search(s_resq_sub, i_this);
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode = 21;
|
|
}
|
|
break;
|
|
|
|
case 21:
|
|
anm_init(i_this, 39, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 22;
|
|
i_this->mTimers[0] = cM_rndF(80.0f) + 100.0f;
|
|
i_this->field_0xaec = 1;
|
|
break;
|
|
|
|
case 22:
|
|
if (((i_this->field_0x5d0 == 39 || i_this->field_0x5d0 == 43 && frame < 7) ||
|
|
(frame > 40 && frame < 48) || frame > 65)) {
|
|
i_this->field_0x5e0 = 4;
|
|
}
|
|
|
|
if ((i_this->mTimers[0] == 0) && (i_this->field_0x5d0 == 39)) {
|
|
anm_init(i_this, 43, 5.0f, 0, 1.0f);
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 43) {
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 21;
|
|
}
|
|
}
|
|
|
|
if (bokoblin_p == NULL) {
|
|
i_this->mTimers[0] = cM_rndF(10.0f) + 30.0f;
|
|
i_this->mMode = 23;
|
|
dComIfGs_onSwitch(fopAcM_GetParam(a_this) >> 24, fopAcM_GetRoomNo(a_this));
|
|
}
|
|
break;
|
|
|
|
case 23:
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (i_this->field_0x5b6 == 0) {
|
|
anm_init(i_this, 56, 3.0f, 2, 1.0f);
|
|
}
|
|
else {
|
|
anm_init(i_this, 11, 3.0f, 2, 1.0f);
|
|
}
|
|
i_this->mTimers[0] = cM_rndF(25.0f) + 70.0f;
|
|
i_this->mMode = 24;
|
|
}
|
|
break;
|
|
|
|
case 24:
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mActionID = 114;
|
|
i_this->mMode = 0;
|
|
i_this->mTimers[2] = 60;
|
|
}
|
|
}
|
|
|
|
cLib_addCalc2(&a_this->speedF, 0.0f, 1.0f, 4.0f);
|
|
return 1;
|
|
}
|
|
|
|
/* 80A4CF40-80A4D438 0040A0 04F8+00 2/1 0/0 0/0 .text npc_ks_demo_04__FP12npc_ks_class */
|
|
static void npc_ks_demo_04(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
f32 fVar1 = 0.0f;
|
|
f32 fVar2 = 10.0f;
|
|
switch(i_this->mMode) {
|
|
case 0:
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
break;
|
|
|
|
case 2:
|
|
a_this->current.pos.set(0.0f, 3300.0f, 4393.0f);
|
|
a_this->current.angle.y = -0x8000;
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 3;
|
|
break;
|
|
|
|
case 3:
|
|
fVar1 = l_HIO.field_0x18;
|
|
if (a_this->field_0x567 != 0) {
|
|
a_this->field_0x567 = 0;
|
|
anm_init(i_this, 45, 3.0f, 0, 1.0f);
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 45) {
|
|
if (i_this->mpModelMorf->checkFrame(20.0f)) {
|
|
mDoAud_seStart(0x5001a, 0, 0, 0);
|
|
}
|
|
|
|
fVar1 = 0.0f;
|
|
fVar2 = 4.0f;
|
|
if (i_this->mpModelMorf->getFrame() >= 37.0f) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
}
|
|
}
|
|
|
|
break;
|
|
|
|
case 4:
|
|
i_this->mMode = 5;
|
|
anm_init(i_this, 33, 5.0f, 0, 1.0f);
|
|
mDoAud_seStart(0x5001a, 0, 0, 0);
|
|
a_this->speed.y = 0.0f;
|
|
break;
|
|
|
|
case 5:
|
|
fVar1 = l_HIO.field_0x18;
|
|
a_this->gravity = -2.0f;
|
|
break;
|
|
|
|
case 6:
|
|
anm_init(i_this, 12, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 7;
|
|
// fallthrough
|
|
case 7:
|
|
a_this->gravity = 0.0f;
|
|
a_this->speed.y = 10.0f;
|
|
if ((i_this->field_0x5e6 & 31) == 0) {
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_WAIT, -1);
|
|
}
|
|
break;
|
|
|
|
case 8:
|
|
anm_init(i_this, 26, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 35;
|
|
i_this->mMode = 9;
|
|
break;
|
|
|
|
case 9:
|
|
fVar1 = l_HIO.field_0x18;
|
|
fVar2 = 4.0f;
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 37, 3.0f, 0, 1.0f);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_RELEIEF, -1);
|
|
i_this->field_0x5e4 = 1;
|
|
i_this->mMode = 10;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
i_this->field_0x5fc = 1;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->field_0x5e4 = 0;
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 11;
|
|
i_this->mTimers[0] = 25;
|
|
}
|
|
break;
|
|
|
|
case 11:
|
|
fVar1 = l_HIO.field_0x18;
|
|
fVar2 = 4.0f;
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 7, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 120;
|
|
i_this->mMode = 12;
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x5c8, 2, 0x1000);
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mActionID = 100;
|
|
i_this->mMode = 0;
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 21;
|
|
// fallthrough
|
|
case 21:
|
|
if (a_this->field_0x567 != 0) {
|
|
a_this->field_0x567 = 0;
|
|
i_this->mMode = 22;
|
|
anm_init(i_this, 45, 3.0f, 0, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 22:
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 26) {
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, 0, 2, 0x1000);
|
|
if (a_this->current.angle.y < 0x1000 && a_this->current.angle.y > -0x1000) {
|
|
fVar1 = l_HIO.field_0x18;
|
|
fVar2 = 10.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
cLib_addCalc2(&a_this->speedF, fVar1, 1.0f, fVar2);
|
|
}
|
|
|
|
/* 80A4D438-80A4DBF8 004598 07C0+00 1/1 0/0 0/0 .text npc_ks_to_hang__FP12npc_ks_class */
|
|
static void npc_ks_to_hang(npc_ks_class* i_this) {
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
cXyz sp24, sp30;
|
|
cXyz sp3c(i_this->field_0xbc8);
|
|
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
i_this->field_0x8f0 = sp3c;
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
a_this->speedF = 0.0f;
|
|
i_this->mMode++;
|
|
break;
|
|
|
|
case 1:
|
|
sp24 = i_this->field_0x8f0 - a_this->current.pos;
|
|
if (i_this->field_0x5d0 == 32) {
|
|
a_this->speedF = 0.0f;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
}
|
|
}
|
|
|
|
i_this->field_0x8fc.y = cM_atan2s(sp24.x, sp24.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp24.y, JMAFastSqrt(sp24.x * sp24.x + sp24.z * sp24.z));
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x8fc.y, 1, 0x2000);
|
|
if (sp24.abs() <= a_this->speedF * 1.1f) {
|
|
i_this->mMode = 10;
|
|
obj_sw_class* sw_p = i_this->field_0x934;
|
|
if (sw_p != NULL) {
|
|
if (sw_p->field_0x91c == 1) {
|
|
i_this->field_0x630 = sw_p->field_0xd8c / 2;
|
|
} else {
|
|
i_this->field_0x630 = ((i_this->field_0x5b6 + 1) * (sw_p->field_0xd8c / (sw_p->field_0x91c + 1)) - 1);
|
|
}
|
|
|
|
a_this->parentActorID = fopAcM_GetID(sw_p);
|
|
|
|
a_this->current.pos = i_this->field_0x8f0;
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_END, 0, -1);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 0;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
obj_so_class* cage_p = (obj_so_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
i_this->field_0x8f0 = cage_p->field_0x920[i_this->field_0x630];
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
sp24 = i_this->field_0x8f0 - a_this->current.pos;
|
|
if (i_this->field_0x5d0 == 32) {
|
|
a_this->speedF = 0.0f;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 30.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
}
|
|
}
|
|
|
|
i_this->field_0x8fc.y = cM_atan2s(sp24.x, sp24.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp24.y, JMAFastSqrt(sp24.x * sp24.x + sp24.z * sp24.z));
|
|
if (sp24.abs() <= a_this->speedF* 1.1f) {
|
|
a_this->current.pos = i_this->field_0x8f0;
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_END, 0, -1);
|
|
if (i_this->field_0x934->field_0x91c == 1) {
|
|
i_this->mActionID = 11;
|
|
i_this->mMode = 0;
|
|
} else {
|
|
i_this->mActionID = 21;
|
|
i_this->mMode = 0;
|
|
i_this->mTimers[2] = 15;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (a_this->speedF> 25.0f) {
|
|
i_this->field_0x90c= 1;
|
|
}
|
|
}
|
|
|
|
/* 80A4DBF8-80A4DC80 004D58 0088+00 1/1 0/0 0/0 .text s_next_do_sub__FPvPv */
|
|
static void* s_next_do_sub(void* i_actor, void* i_data) {
|
|
// NONMATCHING
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_KS && ((npc_ks_class*)i_actor)->field_0x5b5 == 0 &&
|
|
((npc_ks_class*)i_data)->field_0x5b8 != ((npc_ks_class*)i_actor)->field_0x5b8 - 1) {
|
|
((npc_ks_class*)i_actor)->mMode++;
|
|
} else {
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4DC80-80A4DD70 004DE0 00F0+00 1/1 0/0 0/0 .text s_next_get_sub__FPvPv */
|
|
static void* s_next_get_sub(void* i_actor, void* i_data) {
|
|
// NONMATCHING
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_KS && ((npc_ks_class*)i_actor)->field_0x5b5 != 0 &&
|
|
((npc_ks_class*)i_actor)->field_0x5b8 != ((npc_ks_class*)i_data)->field_0x5b8 && ((npc_ks_class*)i_actor)->field_0x620 != 0) {
|
|
((npc_ks_class*)i_actor)->field_0x620 = 0;
|
|
anm_init(((npc_ks_class*)i_actor), 24, 1.0f, 2, 1.0f);
|
|
((npc_ks_class*)i_data)->field_0x620 = 1;
|
|
((npc_ks_class*)i_data)->field_0x624 = ((npc_ks_class*)i_data)->field_0x614 - ((npc_ks_class*)i_actor)->field_0x614;
|
|
((npc_ks_class*)i_data)->field_0x624 *= 0.1f;
|
|
((npc_ks_class*)i_data)->field_0x634 = 10.0f;
|
|
return i_actor;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4DD70-80A4DDF8 004ED0 0088+00 1/1 0/0 0/0 .text order_set__Fi */
|
|
static void order_set(int param_1) {
|
|
// NONMATCHING
|
|
if (saru_p[param_1]->field_0x5c4 < saru_p[1]->field_0x5c4) {
|
|
for (int i = 0; i < param_1; i++) {
|
|
saru_p[i]->field_0x5b8 = i;
|
|
}
|
|
} else {
|
|
for (int i = 0; i < param_1; i++) {
|
|
saru_p[i]->field_0x5b8 = (param_1 - 1) - i;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80A4DDF8-80A4DE34 004F58 003C+00 2/2 0/0 0/0 .text all_carry_finish__Fi */
|
|
static void all_carry_finish(int param_1) {
|
|
for (int i = 0; i < param_1; i++) {
|
|
saru_p[i]->mActionID = 10;
|
|
saru_p[i]->mMode = 0;
|
|
}
|
|
}
|
|
|
|
/* 80A4DE34-80A4E000 004F94 01CC+00 2/2 0/0 0/0 .text hang_end_check__FP12npc_ks_class */
|
|
static void hang_end_check(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
|
cXyz sp30, sp3c;
|
|
if (i_this->mRoomMonkeyID > 3 || !dComIfGs_isStageMiddleBoss()) {
|
|
if ((fopAcM_GetRoomNo(a_this) == 4 && player->current.pos.z < 2500.0f) || checkDoorDemo()) {
|
|
i_this->mActionID = 100;
|
|
i_this->mMode = 0;
|
|
i_this->field_0x904 = 0;
|
|
i_this->field_0xaec = 1;
|
|
a_this->current.angle.x = 0;
|
|
if (fopAcM_CheckCondition(a_this, 4) != 0) {
|
|
camera_class* camera = dComIfGp_getCamera(0);
|
|
if (checkDoorDemo()) {
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y + 0x8000);
|
|
} else {
|
|
sp30.x = camera->lookat.eye.x - camera->lookat.center.x;
|
|
sp30.z = camera->lookat.eye.z - camera->lookat.center.z;
|
|
cMtx_YrotS(*calc_mtx, cM_atan2s(sp30.x, sp30.z));
|
|
}
|
|
|
|
if ((i_this->field_0x5b6 & 1) != 0) {
|
|
sp30.x = 100.0f;
|
|
} else {
|
|
sp30.x = -100.0f;
|
|
}
|
|
sp30.y = -50.0f;
|
|
sp30.z = 100.0f;
|
|
MtxPosition(&sp30, &sp3c);
|
|
a_this->current.pos = camera->lookat.eye + sp3c;
|
|
a_this->old = a_this->current;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80A4E000-80A4E800 005160 0800+00 2/1 0/0 0/0 .text npc_ks_hang__FP12npc_ks_class */
|
|
static void npc_ks_hang(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
static s16 start_pya;
|
|
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
if (leader == NULL) {
|
|
return;
|
|
}
|
|
|
|
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
|
|
|
if (fopAcM_GetRoomNo(a_this) == 4) {
|
|
for (int i = 0; i < 4; i++) {
|
|
if (saru_p[i] == NULL) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (player->current.pos.y < 2800.0f) {
|
|
cDmr_SkipInfo = 4;
|
|
}
|
|
}
|
|
|
|
obj_sw_class* sw_p = (obj_sw_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
if (sw_p == NULL) {
|
|
sw_p = (obj_sw_class*)fpcM_Search(s_sw_sub, i_this);
|
|
if (sw_p == NULL) {
|
|
return;
|
|
}
|
|
|
|
a_this->parentActorID = fopAcM_GetID(sw_p);
|
|
i_this->field_0x934 = sw_p;
|
|
i_this->field_0x630 = (i_this->field_0x5b6 + 1) * (i_this->field_0x934->field_0xd8c / (i_this->field_0x934->field_0x91c + 1)) - 1;
|
|
}
|
|
sw_p->field_0x900 += 5.0f;
|
|
|
|
cXyz sp2c, sp38;
|
|
int iVar1 = 0;
|
|
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, a_this->home.angle.y + 0x4000, 2, 0x800);
|
|
if (!daPy_getPlayerActorClass()->checkAutoJumpStart()) {
|
|
start_pya = i_this->field_0x5c8;
|
|
}
|
|
|
|
s16 sVar1;
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
i_this->mTimers[0] = 0;
|
|
i_this->mMode++;
|
|
i_this->field_0x604 = 0;
|
|
// fallthrough
|
|
case 1:
|
|
if (i_this->field_0x5b6 == 0 && leader->field_0xb42 == 0) {
|
|
order_set(sw_p->field_0x91c);
|
|
}
|
|
|
|
if (i_this->field_0x5b8 == 0 && i_this->field_0x5d0 != 16 && i_this->field_0x5c4 < 550.0f) {
|
|
anm_init(i_this, 16, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(50.0f) + 200.0f;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 50.0f;
|
|
if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 17, 5.0f, 2, 1.0f);
|
|
} else if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 18, 5.0f, 2, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 19, 5.0f, 2, 1.0f);
|
|
}
|
|
}
|
|
|
|
leader->field_0x92c = 0;
|
|
if (i_this->field_0x5b8 == 0 && !dComIfGp_event_runCheck() && i_this->field_0x94e == 0 && i_this->field_0x5c4 < 150.0f) {
|
|
leader->field_0xb42 = 1;
|
|
i_this->field_0x620 = 1;
|
|
i_this->field_0x610 = 0;
|
|
obj_pos = player->current.pos;
|
|
cMtx_YrotS(*calc_mtx, a_this->home.angle.y);
|
|
sp2c.x = 0.0f;
|
|
sp2c.y = -150.0f;
|
|
sp2c.z = -400.0f;
|
|
MtxPosition(&sp2c, &obj_pos);
|
|
obj_pos += a_this->current.pos;
|
|
i_this->field_0x624 = obj_pos - i_this->field_0x614;
|
|
i_this->field_0x624 *= 0.075f;
|
|
i_this->mMode = 4;
|
|
i_this->mTimers[0] = 17;
|
|
i_this->mTimers[1] = 25;
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
i_this->field_0x604 = 0;
|
|
anm_init(i_this, 24, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
sVar1 = start_pya - sw_p->actor.current.angle.y;
|
|
if (sVar1 < 0x4000 && sVar1 > -0x4000) {
|
|
a_this->home.angle.y = sVar1 + 0x8000;
|
|
} else {
|
|
a_this->home.angle.y = sVar1;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
i_this->mMode++;
|
|
i_this->mTimers[0] = 10;
|
|
// fallthrough
|
|
case 3:
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
if (i_this->mTimers[0] == 8) {
|
|
fpcM_Search(s_next_get_sub, i_this);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_THROW, -1);
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 2) {
|
|
i_this->mTimers[2] = 15;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mMode++;
|
|
i_this->mTimers[0] = 10;
|
|
i_this->mTimers[1] = 18;
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
if (i_this->mTimers[0] > 8) {
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 8) {
|
|
anm_init(i_this, 48, 2.0f, 2, 1.0f);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_CATCH, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
sw_p->field_0x8fc = 20.0f;
|
|
// sw_p->field_0xd10[i_this->field_0x630] = 10;
|
|
}
|
|
|
|
if (mDoCPd_c::getTrigA(0) != 0) {
|
|
if (i_this->mTimers[1] <= 9 && i_this->field_0x604 < 0 && i_this->field_0x602 < 0) {
|
|
leader->field_0x92c = 1;
|
|
fpcM_Search(s_next_do_sub, i_this);
|
|
if (i_this->field_0x5b8 == sw_p->field_0x91c -1) {
|
|
i_this->mMode = 5;
|
|
} else {
|
|
i_this->mMode = 10;
|
|
anm_init(i_this, 24, 1.0f, 2, 1.0f);
|
|
}
|
|
} else {
|
|
leader->field_0xb42 = 100;
|
|
i_this->field_0x620 = 0;
|
|
iVar1 = 1;
|
|
i_this->field_0x94e = 20;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
if (i_this->field_0x602 >= 0 || i_this->field_0x604 >= 0) break;
|
|
|
|
i_this->field_0x620 = 0;
|
|
i_this->mTimers[0] = 15;
|
|
i_this->mMode = 6;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_THROW, -1);
|
|
player->changeDemoMode(24, 0, 0, 0);
|
|
anm_init(i_this, 24, 1.0f, 2, 1.0f);
|
|
// fallthrough
|
|
case 6:
|
|
if (i_this->mTimers[0] == 8) {
|
|
leader->field_0xb42 = 3;
|
|
leader->field_0xb44 = 0;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 1) {
|
|
iVar1 = 1;
|
|
}
|
|
}
|
|
|
|
a_this->current.pos = sw_p->field_0x920[i_this->field_0x630];
|
|
s16 sVar2 = i_this->field_0x602;
|
|
cLib_addCalcAngleS2(&i_this->field_0x602, i_this->field_0x60c * cM_ssin(i_this->field_0x5fa), 4, 0x1000);
|
|
i_this->field_0x604 = i_this->field_0x602 - sVar2;
|
|
i_this->field_0x5fa += 0x800;
|
|
a_this->current.angle.z = -(i_this->field_0x602 / 2);
|
|
|
|
if (i_this->mMode != 4) {
|
|
cLib_addCalc0(&i_this->field_0x60c, 0.5f, 100.0f);
|
|
}
|
|
|
|
hang_end_check(i_this);
|
|
if (iVar1 != 0) {
|
|
i_this->field_0x620 = 0;
|
|
i_this->mMode = 0;
|
|
all_carry_finish(sw_p->field_0x91c);
|
|
}
|
|
}
|
|
|
|
/* 80A4E800-80A4EE18 005960 0618+00 1/1 0/0 0/0 .text npc_ks_hang_s__FP12npc_ks_class */
|
|
static void npc_ks_hang_s(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
obj_sw_class* sw_p = (obj_sw_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
if (sw_p == NULL) {
|
|
sw_p = (obj_sw_class*)fpcM_Search(s_sw_sub, i_this);
|
|
if (sw_p == NULL) {
|
|
return;
|
|
}
|
|
|
|
a_this->parentActorID = fopAcM_GetID(sw_p);
|
|
i_this->field_0x934 = sw_p;
|
|
}
|
|
|
|
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
|
sw_p->field_0x900 += 5.0f;
|
|
cXyz sp34, sp40;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, a_this->home.angle.y + 0x4000, 2, 0x800);
|
|
|
|
s16 sVar1;
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
i_this->mMode++;
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
sw_p->field_0x8fc = 20.0f;
|
|
// sw_p->field_0xd10[i_this->field_0x630] = 10;
|
|
i_this->field_0x92c = 0;
|
|
break;
|
|
|
|
case 1:
|
|
if (i_this->field_0x5d0 != 16 && i_this->field_0x5c4 < 550.0f) {
|
|
anm_init(i_this, 16, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(50.0f) + 200.0f;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 50.0f;
|
|
if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 17, 5.0f, 2, 1.0f);
|
|
} else if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 18, 5.0f, 2, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 19, 5.0f, 2, 1.0f);
|
|
}
|
|
}
|
|
|
|
if (i_this->field_0x94e == 0 && !dComIfGp_event_runCheck() && i_this->field_0x5c4 < 300.0f) {
|
|
leader->field_0xb42 = 1;
|
|
i_this->field_0x620 = 1;
|
|
i_this->field_0x610 = 0;
|
|
cMtx_YrotS(*calc_mtx, a_this->home.angle.y);
|
|
sp34.x = 0.0f;
|
|
sp34.y = -150.0f;
|
|
sp34.z = -400.0f;
|
|
MtxPosition(&sp34, &obj_pos);
|
|
obj_pos += a_this->current.pos;
|
|
i_this->field_0x624 = obj_pos - i_this->field_0x614;
|
|
i_this->field_0x624 *= 0.075f;
|
|
|
|
i_this->mMode = 2;
|
|
i_this->mTimers[0] = 17;
|
|
i_this->mTimers[1] = 25;
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
anm_init(i_this, 24, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
sVar1 = i_this->field_0x5c8 - sw_p->actor.current.angle.y;
|
|
if (sVar1 < 0x4000 && sVar1 > -0x4000) {
|
|
a_this->home.angle.y = sVar1 + 0x8000;
|
|
} else {
|
|
a_this->home.angle.y = sVar1;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (i_this->mTimers[0] > 8) {
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 8) {
|
|
anm_init(i_this, 48, 2.0f, 2, 1.0f);
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_CATCH, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
sw_p->field_0x8fc = 20.0f;
|
|
// sw_p->field_0xd10[i_this->field_0x630] = 10;
|
|
}
|
|
|
|
if (mDoCPd_c::getTrigA(0) != 0) {
|
|
if (i_this->field_0x604 < 0 && i_this->field_0x602 < 0) {
|
|
i_this->field_0x92c = 1;
|
|
i_this->field_0x620 = 0;
|
|
i_this->mTimers[0] = 15;
|
|
i_this->mMode = 5;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_THROW, -1);
|
|
player->changeDemoMode(24, 0, 0, 0);
|
|
anm_init(i_this, 24, 1.0f, 2, 1.0f);
|
|
leader->field_0xb42 = 3;
|
|
} else {
|
|
leader->field_0xb42 = 100;
|
|
i_this->field_0x620 = 0;
|
|
i_this->mTimers[0] = 15;
|
|
i_this->mMode = 5;
|
|
i_this->field_0x94e = 20;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
if (i_this->mTimers[0] == 1) {
|
|
leader->field_0xb42 = 100;
|
|
i_this->field_0x620 = 0;
|
|
i_this->mMode = 0;
|
|
}
|
|
}
|
|
|
|
a_this->current.pos = sw_p->field_0x920[i_this->field_0x630];
|
|
s16 sVar2 = i_this->field_0x602;
|
|
cLib_addCalcAngleS2(&i_this->field_0x602, i_this->field_0x60c * cM_ssin(i_this->field_0x5fa), 4, 0x1000);
|
|
i_this->field_0x604 = i_this->field_0x602 - sVar2;
|
|
i_this->field_0x5fa += 0x800;
|
|
a_this->current.angle.z = -(i_this->field_0x602 / 2);
|
|
|
|
if (i_this->field_0x620 != 2) {
|
|
cLib_addCalc0(&i_this->field_0x60c, 0.5f, 100.0f);
|
|
}
|
|
|
|
hang_end_check(i_this);
|
|
}
|
|
|
|
/* 80A4EE18-80A4F170 005F78 0358+00 1/1 0/0 0/0 .text npc_ks_e_hang__FP12npc_ks_class */
|
|
static void npc_ks_e_hang(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
obj_so_class* cage_p = (obj_so_class*)fopAcM_SearchByID(a_this->parentActorID);
|
|
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
|
|
|
cage_p->field_0x900 += 5.0f;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, a_this->home.angle.y + 0x4000, 2, 0x800);
|
|
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
i_this->mMode = 20;
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
cage_p->field_0x8fc = 20.0f;
|
|
// cage_p->field_0xd10[i_this->field_0x630] = 10;
|
|
a_this->home.angle.y = cage_p->current.angle.y;
|
|
i_this->field_0x5fa = -0x4000;
|
|
i_this->field_0x60c = 4000.0f;
|
|
|
|
if (i_this->field_0x5b6 == 0) {
|
|
anm_init(i_this, 24, 2.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 10000;
|
|
i_this->mTimers[1] = 15;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
anm_init(i_this, 48, 2.0f, 2, 1.0f);
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
cage_p->field_0x8fc = 20.0f;
|
|
// cage_p->field_0xd10[i_this->field_0x630] = 10;
|
|
i_this->field_0x5fa = -0x8000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
i_this->mMode++;
|
|
break;
|
|
|
|
case 3:
|
|
if (i_this->field_0x5fa == -0x3800) {
|
|
a_this->health = 10;
|
|
i_this->mMode = 20;
|
|
i_this->mTimers[0] = 0;
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 17, 10.0f, 2, 1.0f);
|
|
} else if (cM_rndF(1.0f) < 0.3f) {
|
|
anm_init(i_this, 18, 10.0f, 2, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 19, 10.0f, 2, 1.0f);
|
|
}
|
|
|
|
i_this->mTimers[0] = 10000;
|
|
i_this->mTimers[1] = 35;
|
|
}
|
|
|
|
if (i_this->mTimers[1] == 1) {
|
|
anm_init(i_this, 24, 7.0f, 2, 1.0f);
|
|
} else if (i_this->mTimers[1] == 0) {
|
|
i_this->field_0x5fa = 0x4000;
|
|
i_this->field_0x60c = 8000.0f;
|
|
}
|
|
}
|
|
|
|
a_this->current.pos = cage_p->field_0x920[i_this->field_0x630];
|
|
cLib_addCalcAngleS2(&i_this->field_0x602, i_this->field_0x60c * cM_ssin(i_this->field_0x5fa), 4, 0x1000);
|
|
i_this->field_0x5fa += 0x800;
|
|
a_this->current.angle.z = -(i_this->field_0x602 / 2);
|
|
cLib_addCalc0(&i_this->field_0x60c, 0.5f, 100.0f);
|
|
}
|
|
|
|
/* 80A4F170-80A4F1D8 0062D0 0068+00 1/1 0/0 0/0 .text all_move_check__Fii */
|
|
static int all_move_check(int param_1, int param_2) {
|
|
int iVar1 = 0;
|
|
while (param_2 > iVar1) {
|
|
if (saru_p[iVar1] == NULL) return 0;
|
|
|
|
if (param_1 != saru_p[iVar1]->field_0x5b6 && (saru_p[iVar1]->mActionID != 21 || saru_p[iVar1]->mMode != 20)) {
|
|
return 0;
|
|
}
|
|
|
|
iVar1++;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 80A4F1D8-80A4F228 006338 0050+00 1/1 0/0 0/0 .text go_jump_check__Fi */
|
|
static int go_jump_check(int param_1) {
|
|
// FAKEMATCH???
|
|
param_1--;
|
|
while (param_1 >= 0) {
|
|
if (saru_p[param_1]->mActionID != 21 || saru_p[param_1]->mTimers[2] != 0) {
|
|
return 0;
|
|
}
|
|
|
|
param_1--;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 80A4F228-80A4FD7C 006388 0B54+00 2/1 0/0 0/0 .text npc_ks_e_jump__FP12npc_ks_class */
|
|
static int npc_ks_e_jump(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
cXyz sp28;
|
|
obj_sw_class* sw_p2 = i_this->field_0x934;
|
|
npc_ks_class* ks_p = (npc_ks_class*)i_this->field_0x930;
|
|
int rv = 2;
|
|
switch(i_this->mMode) {
|
|
case 0:
|
|
i_this->field_0xaec = 1;
|
|
if (i_this->field_0x5c4 > l_HIO.field_0xc) {
|
|
anm_init(i_this, 28, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 1;
|
|
i_this->mTimers[0] = 20;
|
|
} else {
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 5;
|
|
a_this->speedF = 0.0f;
|
|
}
|
|
|
|
if (fopAcM_GetRoomNo(a_this) == 4) {
|
|
a_this->current.pos.y = 3300.0f;
|
|
if (a_this->current.pos.x > 180.0f) {
|
|
a_this->current.pos.x = 180.0f;
|
|
} else if (a_this->current.pos.x < -180.0f) {
|
|
a_this->current.pos.x = -180.0f;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
a_this->speedF = l_HIO.field_0x14;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x5c8, 1, 0x2000);
|
|
rv = 1;
|
|
if (i_this->mTimers[0] == 0 || i_this->field_0x5c4 < l_HIO.field_0xc - 20.0f) {
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 5;
|
|
a_this->speedF = 0.0f;
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
i_this->field_0x5fd = 1;
|
|
sp28 = ks_p->field_0x614 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp28.x, sp28.z);
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x8fc.y, 1, 0x2000);
|
|
|
|
if (go_jump_check(i_this->field_0x5b6) != 0) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = 10;
|
|
i_this->mMode = 6;
|
|
i_this->field_0xaec = 0;
|
|
}
|
|
break;
|
|
|
|
case 6:
|
|
i_this->field_0x5fd = 1;
|
|
a_this->speedF = 20.0f;
|
|
rv = 1;
|
|
if (i_this->mTimers[0] == 0) {
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
i_this->mMode = 7;
|
|
}
|
|
break;
|
|
|
|
case 7:
|
|
// bVar1 = true;
|
|
i_this->field_0x5fd = 1;
|
|
if (i_this->field_0x5d0 == 32) {
|
|
a_this->speedF = 0.0f;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
i_this->field_0xbe0 = 1;
|
|
}
|
|
}
|
|
|
|
i_this->field_0x8f0 = ks_p->field_0x614;
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
sp28 = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp28.x, sp28.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp28.y, JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z));
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x8fc.y, 1, 0x2000);
|
|
|
|
if (a_this->speedF >= 40.0f) {
|
|
i_this->field_0x90c = 1;
|
|
cLib_addCalc2(&i_this->field_0x928, -183.0f, 1.0f, 15.0f);
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, 0x1800, 4, 0x1800);
|
|
}
|
|
|
|
if (sp28.abs() <= a_this->speedF * 1.2f) {
|
|
a_this->speedF = 0.0f;
|
|
i_this->mMode = 10;
|
|
anm_init(i_this, 48, 2.0f, 2, 1.0f);
|
|
ks_p->mMode = 2;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
a_this->home.angle.y = sw_p2->actor.current.angle.y;
|
|
a_this->current.angle.y = a_this->home.angle.y;
|
|
a_this->current.pos = ks_p->field_0x614;
|
|
a_this->current.angle.x = (s16)((int)ks_p->field_0x602 << 1);
|
|
if (ks_p->actor.health != 10) break;
|
|
ks_p->actor.health = 0;
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_THROW, -1);
|
|
|
|
if (fopAcM_GetRoomNo(a_this) == 2) {
|
|
a_this->speedF = 25.0f;
|
|
} else {
|
|
a_this->speedF = 40.0f;
|
|
}
|
|
|
|
if (ks_p->field_0x5b6 == i_this->field_0x5b6 - 1) {
|
|
i_this->mMode = 11;
|
|
} else {
|
|
i_this->mMode = 20;
|
|
i_this->field_0x930 = saru_p[ks_p->field_0x5b6 + 1];
|
|
}
|
|
|
|
anm_init(i_this, 33, 1.0f, 0, 1.0f);
|
|
i_this->field_0xbe0 = 1;
|
|
// fallthrough
|
|
case 11:
|
|
i_this->field_0x90c = 1;
|
|
i_this->field_0x630 = (i_this->field_0x5b6 + 1) * (sw_p2->field_0xd8c / (sw_p2->field_0x91c + 1)) - 1;
|
|
i_this->field_0x8f0 = sw_p2->field_0x920[i_this->field_0x630];
|
|
|
|
a_this->parentActorID = fopAcM_GetID(sw_p2);
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
sp28 = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp28.x, sp28.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp28.y, JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z));
|
|
|
|
if (sp28.abs() <= a_this->speedF * 1.2f) {
|
|
a_this->speedF = 0.0f;
|
|
i_this->mMode = 12;
|
|
anm_init(i_this, 24, 2.0f, 2, 1.0f);
|
|
i_this->mSound.startCreatureSound(Z2SE_FN_ROPE_CREAK, 0, -1);
|
|
sw_p2->field_0x8fc = 20.0f;
|
|
// sw_p2->field_0xd10[i_this->field_0x630] = 10;
|
|
}
|
|
// fallthrough
|
|
case 12:
|
|
cLib_addCalc0(&i_this->field_0x928, 1.0f, 15.0f);
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, -0x8000, 1, 0x700);
|
|
if (i_this->mMode == 12 && i_this->field_0x928 == 0.0f) {
|
|
if (all_move_check(i_this->field_0x5b6, sw_p2->field_0x91c) != 0) {
|
|
all_carry_finish(sw_p2->field_0x91c);
|
|
} else {
|
|
i_this->mActionID = 21;
|
|
i_this->mMode = 0;
|
|
i_this->mTimers[2] = 15;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
i_this->field_0x90c = 1;
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, 0x1800, 4, 0x1800);
|
|
i_this->field_0x8f0 = ks_p->field_0x614;
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
sp28 = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp28.x, sp28.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp28.y, JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z));
|
|
|
|
if (sp28.abs() <= a_this->speedF * 1.2f) {
|
|
a_this->speedF = 0.0f;
|
|
i_this->mMode = 10;
|
|
anm_init(i_this, 48, 2.0f, 2, 1.0f);
|
|
ks_p->mMode = 2;
|
|
}
|
|
}
|
|
|
|
if (i_this->mMode != 11 && i_this->mMode != 12) {
|
|
i_this->field_0x608 = (s16)((int)a_this->current.angle.x << 1);
|
|
}
|
|
|
|
return rv;
|
|
}
|
|
|
|
/* 80A4FD7C-80A4FE4C 006EDC 00D0+00 1/1 0/0 0/0 .text get_move_saru__FP12npc_ks_classi */
|
|
static npc_ks_class* get_move_saru(npc_ks_class* i_this, int param_2) {
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
if (fopAcM_GetRoomNo(a_this) == 0) {
|
|
for (int i = 0; i < 2; i++) {
|
|
if (saru_p[i] != NULL && (saru_p[i]->mActionID == 20 || saru_p[i]->mActionID == 22) && i_this->field_0xb40 == saru_p[i]->field_0x934->field_0x570) {
|
|
return saru_p[i];
|
|
}
|
|
}
|
|
} else {
|
|
for (int i = 0; i < param_2; i++) {
|
|
if (i_this->field_0xb40 == saru_p[i]->field_0x934->field_0x570 && ((saru_p[i]->mActionID == 20 || saru_p[i]->mActionID == 22) || saru_p[i]->mTimers[2] != 0)) {
|
|
return saru_p[i];
|
|
}
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A4FE4C-80A4FEF0 006FAC 00A4+00 1/1 0/0 0/0 .text all_hang_check__FP12npc_ks_classi */
|
|
static int all_hang_check(npc_ks_class* i_this, int param_2) {
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
if (fopAcM_GetRoomNo(a_this) == 0) {
|
|
for (int i = 0; i < 2; i++) {
|
|
if (saru_p[i] != NULL && saru_p[i]->field_0x5b5 != 0 && i_this->field_0xb40 == saru_p[i]->field_0x934->field_0x570) {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
for (int i = 0; i < param_2; i++) {
|
|
if (saru_p[i]->field_0x5b5 == 0) {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 80A4FEF0-80A4FFD4 007050 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP12npc_ks_classf */
|
|
static void cam_3d_morf(npc_ks_class* i_this, f32 param_2) {
|
|
cLib_addCalc2(&i_this->field_0xb60.x, i_this->field_0xb6c.x, param_2, i_this->field_0xb84.x * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, i_this->field_0xb6c.y, param_2, i_this->field_0xb84.y * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, i_this->field_0xb6c.z, param_2, i_this->field_0xb84.z * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb48.x, i_this->field_0xb54.x, param_2, i_this->field_0xb78.x * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb48.y, i_this->field_0xb54.y, param_2, i_this->field_0xb78.y * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb48.z, i_this->field_0xb54.z, param_2, i_this->field_0xb78.z * i_this->field_0xbc4);
|
|
}
|
|
|
|
/* 80A4FFD4-80A50028 007134 0054+00 1/1 0/0 0/0 .text s_fs_sub__FPvPv */
|
|
static void* s_fs_sub(void* i_actor, void* i_data) {
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_FS) {
|
|
((e_fs_class*)i_actor)->mAction = 10;
|
|
((e_fs_class*)i_actor)->mMode = 0;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A50028-80A50094 007188 006C+00 1/1 0/0 0/0 .text s_fsdown_sub__FPvPv */
|
|
static void* s_fsdown_sub(void* i_actor, void* i_data) {
|
|
// FAKEMATCH???
|
|
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_FS) {
|
|
((e_fs_class*)i_actor)->mTimer[0] = (fopAcM_GetID(i_actor) << 3) & 24;
|
|
((e_fs_class*)i_actor)->mMode++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80A50094-80A5280C 0071F4 2778+00 1/1 0/0 0/0 .text demo_camera__FP12npc_ks_class */
|
|
static void demo_camera(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
|
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
|
dComIfGp_getCamera(0);
|
|
obj_sw_class* sw_p = i_this->field_0x934;
|
|
cXyz sp44, sp50;
|
|
f32 fVar1, fVar2;
|
|
npc_ks_class* npc_ks_p;
|
|
obj_brg_class* brg_p;
|
|
daMidna_c* midna_p;
|
|
|
|
switch (i_this->field_0xb42) {
|
|
case 1:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 2;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(19, 0, 0, 0);
|
|
player->changeDemoParam0(0);
|
|
i_this->field_0xb60 = player->current.pos;
|
|
i_this->field_0xba8.z = 500.0f;
|
|
i_this->field_0xba8.x = 500.0f;
|
|
i_this->field_0xba8.y = 0.0f;
|
|
// fallthrough
|
|
case 2:
|
|
i_this->field_0xbb8 = 55.0f;
|
|
cLib_addCalc2(&i_this->field_0xb60.x, player->current.pos.x, 0.2f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, sw_p->actor.current.pos.y - 250.0f, 0.2f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, player->current.pos.z, 0.2f, 50.0f);
|
|
if (fopAcM_GetRoomNo(a_this) == 2) {
|
|
cMtx_YrotS(*calc_mtx, sw_p->actor.current.angle.y);
|
|
} else {
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
|
|
}
|
|
|
|
sp44.x = i_this->field_0xba8.x;
|
|
sp44.y = i_this->field_0xba8.y;
|
|
sp44.z = i_this->field_0xba8.z;
|
|
MtxPosition(&sp44,&sp50);
|
|
|
|
sp50.x = sp50.x + player->current.pos.x;
|
|
sp50.y = sp50.y + (sw_p->actor.current.pos.y - 250.0f);
|
|
sp50.z = sp50.z + player->current.pos.z;
|
|
if (i_this->field_0xb44 == 0) {
|
|
i_this->field_0xb48 = sp50;
|
|
} else {
|
|
cLib_addCalc2(&i_this->field_0xb48.x, sp50.x, 0.1f, 200.0f);
|
|
cLib_addCalc2(&i_this->field_0xb48.y, sp50.y, 0.1f, 200.0f);
|
|
cLib_addCalc2(&i_this->field_0xb48.z, sp50.z, 0.1f, 200.0f);
|
|
}
|
|
|
|
if (i_this->field_0x92c != 0) {
|
|
i_this->field_0xba8.z += -10.0f;
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
cLib_addCalc2(&i_this->field_0xb60.x, player->current.pos.x, 0.4f, 100.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, player->current.pos.y + 70.0f, 0.4f, 100.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, player->current.pos.z, 0.4f, 100.0f);
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
|
|
fVar1 = 50.0f;
|
|
if (fopAcM_GetRoomNo(a_this) == 4 && i_this->field_0xbdb == 0) {
|
|
sp44.x = 100.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = 300.0f;
|
|
|
|
if (i_this->field_0xb44 == 10) {
|
|
player->changeDemoMode(40, 0, 0, 0);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 0x1c) {
|
|
player->changeDemoMode(41, 0, 0, 0);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 40) {
|
|
i_this->field_0xb42 = 100;
|
|
i_this->field_0xbdb = 1;
|
|
}
|
|
|
|
fVar1 = 200.0f;
|
|
} else {
|
|
sp44.x = 0.0f;
|
|
sp44.y = 0.0f;
|
|
sp44.z = -400.0f;
|
|
|
|
if (i_this->field_0xb44 == 8) {
|
|
i_this->field_0xb42 = 100;
|
|
}
|
|
}
|
|
|
|
MtxPosition(&sp44, &sp50);
|
|
sp50.x = sp50.x + player->current.pos.x;
|
|
sp50.y = sp50.y + player->current.pos.y;
|
|
sp50.z = sp50.z + player->current.pos.z;
|
|
cLib_addCalc2(&i_this->field_0xb48.x, sp50.x, 0.2f, fVar1);
|
|
cLib_addCalc2(&i_this->field_0xb48.y, sp50.y, 0.2f, fVar1);
|
|
cLib_addCalc2(&i_this->field_0xb48.z, sp50.z, 0.2f, fVar1);
|
|
break;
|
|
|
|
case 10:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 11;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
i_this->field_0xba8.z = 500.0f;
|
|
i_this->field_0xba8.x = 500.0f;
|
|
i_this->field_0xba8.y = 0.0f;
|
|
i_this->field_0xbc0 = NULL;
|
|
// fallthrough
|
|
|
|
sp50 = i_this->field_0xbc8;
|
|
sp50.y = player->current.pos.y;
|
|
setPlayerPosAndAngle(&sp50, player->shape_angle.y);
|
|
npc_ks_p = i_this->field_0xbc0;
|
|
i_this->field_0xbc0 = get_move_saru(i_this,sw_p->field_0x91c);;
|
|
i_this->field_0xb6c.y = sw_p->actor.current.pos.y - 200.0f;
|
|
if (i_this->field_0xbc0 != NULL) {
|
|
sw_p = i_this->field_0xbc0->field_0x934;
|
|
cMtx_YrotS(*calc_mtx, i_this->field_0xbd4);
|
|
sp44.x = i_this->field_0xba8.x;
|
|
sp44.y = i_this->field_0xba8.y;
|
|
sp44.z = i_this->field_0xba8.z;
|
|
MtxPosition(&sp44, &i_this->field_0xb54);
|
|
i_this->field_0xb54.x += i_this->field_0xbc0->actor.current.pos.x;
|
|
i_this->field_0xb54.y += sw_p->actor.current.pos.y - 250.0f;
|
|
i_this->field_0xb54.z += i_this->field_0xbc0->actor.current.pos.z;
|
|
i_this->field_0xb6c.x = i_this->field_0xbc0->actor.current.pos.x;
|
|
i_this->field_0xb6c.y = sw_p->actor.current.pos.y - 200.0f;
|
|
|
|
if (i_this->field_0xbc0->mActionID == 20 && i_this->field_0xb6c.y < i_this->field_0xbc0->actor.current.pos.y) {
|
|
i_this->field_0xb6c.y = i_this->field_0xbc0->actor.current.pos.y;
|
|
}
|
|
|
|
i_this->field_0xb6c.z = i_this->field_0xbc0->actor.current.pos.z;
|
|
if (npc_ks_p != i_this->field_0xbc0) {
|
|
i_this->field_0xb48 = i_this->field_0xb54;
|
|
i_this->field_0xb60 = i_this->field_0xb6c;
|
|
}
|
|
i_this->field_0xb84.set(200.0f, 200.0f, 200.0f);
|
|
i_this->field_0xbc4 = 1.0f;
|
|
} else {
|
|
if (all_hang_check(i_this, sw_p->field_0x91c) != 0) {
|
|
i_this->field_0xb42 = 12;
|
|
if (fopAcM_GetRoomNo(a_this) == 0) {
|
|
i_this->field_0xb44 = 45;
|
|
} else if (sw_p->field_0x91c >= 3) {
|
|
i_this->field_0xb6c.x = saru_p[sw_p->field_0x91c]->actor.current.pos.x;
|
|
i_this->field_0xb6c.y = saru_p[sw_p->field_0x91c]->actor.current.pos.y;
|
|
i_this->field_0xb6c.y = i_this->field_0xb6c.y - 150.0f;
|
|
i_this->field_0xb6c.z = saru_p[sw_p->field_0x91c]->actor.current.pos.z;
|
|
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
i_this->field_0xb44 = 5;
|
|
} else {
|
|
i_this->field_0xb44 = 45;
|
|
}
|
|
}
|
|
}
|
|
// fallthrough
|
|
case 12:
|
|
cLib_addCalc2(&i_this->field_0xb48.x, i_this->field_0xb54.x, 0.2f, i_this->field_0xbc4 * 200.0f);
|
|
cLib_addCalc2(&i_this->field_0xb48.y, i_this->field_0xb54.y, 0.2f, i_this->field_0xbc4 * 200.0f);
|
|
cLib_addCalc2(&i_this->field_0xb48.z, i_this->field_0xb54.z, 0.2f, i_this->field_0xbc4 * 200.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.x, i_this->field_0xb6c.x, 0.2f, i_this->field_0xb84.x * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, i_this->field_0xb6c.y, 0.2f, i_this->field_0xb84.y * i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, i_this->field_0xb6c.z, 0.2f, i_this->field_0xb84.z * i_this->field_0xbc4);
|
|
if (i_this->field_0xb42 == 12) {
|
|
cLib_addCalc2(&i_this->field_0xbb8, 40.0f, 0.2f, i_this->field_0xbc4);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.1f, 1.0f, 0.005f);
|
|
if (85 < i_this->field_0xb44) {
|
|
i_this->field_0xb42 = 100;
|
|
sp44.x = saru_p[i_this->field_0xb40]->actor.current.pos.x - i_this->field_0xbc8.x;
|
|
sp44.z = saru_p[i_this->field_0xb40]->actor.current.pos.z - i_this->field_0xbc8.z;
|
|
s16 angle = cM_atan2s(sp44.x, sp44.z);
|
|
cMtx_YrotS(*calc_mtx, angle);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 0.0f;
|
|
if (fopAcM_GetRoomNo(a_this) == 4) {
|
|
sp44.z = -250.0f;
|
|
} else {
|
|
sp44.z = -150.0f;
|
|
}
|
|
MtxPosition(&sp44,&sp50);
|
|
sp50.x = sp50.x + i_this->field_0xbc8.x;
|
|
sp50.z = sp50.z + i_this->field_0xbc8.z;
|
|
|
|
if (fopAcM_GetRoomNo(a_this) == 2) {
|
|
sp50.y = 3764.0f;
|
|
} else {
|
|
sp50.y = player->current.pos.y;
|
|
}
|
|
setPlayerPosAndAngle(&sp50, angle);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = -250.0f;
|
|
MtxPosition(&sp44, &i_this->field_0xb48);
|
|
i_this->field_0xb48 += player->current.pos;
|
|
i_this->field_0xb60 = player->current.pos;
|
|
i_this->field_0xb60.y += 120.0f;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 60:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 61;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
cMtx_YrotS(*calc_mtx, a_this->shape_angle.y);
|
|
sp44.x = 300.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = 0.0f;
|
|
MtxPosition(&sp44, &i_this->field_0xb48);
|
|
i_this->field_0xb48 += a_this->current.pos;
|
|
|
|
fVar2 = i_this->field_0xb48.x;
|
|
sp44.x = fVar2 - player->current.pos.x;
|
|
sp44.z = i_this->field_0xb48.z - player->current.pos.z;
|
|
if (sp44.x * sp44.x + sp44.z * sp44.z < 10000.0f) {
|
|
i_this->field_0xb48.x = fVar2 + 200.0f;
|
|
}
|
|
|
|
i_this->field_0xb60 = a_this->eyePos;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
// fallthrough
|
|
case 61:
|
|
sp50 = player->old.pos;
|
|
sp50.y = 3150.0f;
|
|
setPlayerPosAndAngle(&sp50, player->shape_angle.y);
|
|
i_this->field_0xbb8 = 65.0f;
|
|
cLib_addCalc2(&i_this->field_0xb60.x, a_this->eyePos.x, 0.1f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, a_this->eyePos.y, 0.1f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, a_this->eyePos.z, 0.1f, 50.0f);
|
|
break;
|
|
|
|
case 70:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 71;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
// fallthrough
|
|
case 71:
|
|
if (i_this->field_0xb44 == 0) {
|
|
i_this->field_0xb60 = a_this->current.pos;
|
|
i_this->field_0xb60.y = a_this->current.pos.y + 120.0f;
|
|
i_this->field_0xb48.set(-4786.0f, 3982.0f, -1843.0f);
|
|
} else if (i_this->field_0xb44 == 210) {
|
|
i_this->field_0xb48.set(-3232.0f, 4137.0f, -1425.0f);
|
|
} else if (i_this->field_0xb44 == 240) {
|
|
i_this->field_0xb48.set(-2459.0f, 4199.0f, -2752.0f);
|
|
} else if (i_this->field_0xb44 == 290) {
|
|
i_this->field_0xb48.set(103.0f, 4025.0f, -1930.0f);
|
|
}
|
|
cLib_addCalc2(&i_this->field_0xb60.x, a_this->current.pos.x, 0.2f, 60.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, a_this->current.pos.y + 120.0f, 0.1f, 30.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, a_this->current.pos.z, 0.2f, 60.0f);
|
|
|
|
if (i_this->field_0xb44 == 358) {
|
|
i_this->field_0xb42 = 99;
|
|
}
|
|
break;
|
|
|
|
case 72:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 73;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
// fallthrough
|
|
case 73:
|
|
if (i_this->field_0xb44 == 0) {
|
|
i_this->field_0xb60 = a_this->current.pos;
|
|
i_this->field_0xb60.y = a_this->current.pos.y + 120.0f;
|
|
i_this->field_0xb48.set(-112.0f, 2420.0f, 13414.0f);
|
|
}
|
|
|
|
sp50.set(145.0f, 2354.0f, 13179.0f);
|
|
setPlayerPosAndAngle(&sp50, -0x691B);
|
|
cLib_addCalc2(&i_this->field_0xb60.x, a_this->current.pos.x, 0.1f, 20.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, a_this->current.pos.y + 120.0f, 0.1f, 10.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, a_this->current.pos.z, 0.12f, 20.0f);
|
|
|
|
if (i_this->field_0xb44 == 280) {
|
|
i_this->field_0xb42 = 100;
|
|
}
|
|
break;
|
|
|
|
case 75:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 76;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1,1,0,0);
|
|
// fallthrough
|
|
case 76:
|
|
setPlayerPosAndAngle(&player->current.pos, i_this->field_0x5c8 + 0x8000);
|
|
if (i_this->field_0xb44 == 0) {
|
|
cMtx_YrotS(*calc_mtx,a_this->shape_angle.y);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = 400.0f;
|
|
MtxPosition(&sp44, &i_this->field_0xb48);
|
|
i_this->field_0xb48 += a_this->current.pos;
|
|
i_this->field_0xb60 = a_this->current.pos;
|
|
i_this->field_0xb60.y = a_this->current.pos.y + 120.0f;
|
|
}
|
|
cLib_addCalc2(&i_this->field_0xb60.x, a_this->current.pos.x, 0.2f, 60.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, a_this->current.pos.y + 120.0f, 0.1f, 30.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, a_this->current.pos.z, 0.2f, 60.0f);
|
|
if (i_this->field_0xb44 == 180) {
|
|
i_this->field_0xb42 = 99;
|
|
}
|
|
break;
|
|
|
|
case 77:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 78;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
i_this->field_0xbb8 = 65.0f;
|
|
i_this->field_0xb60.set(8486.0f, 4143.0f, -10114.0f);
|
|
i_this->field_0xb48.set(8364.0f, 4325.0f, -9756.0f);
|
|
// fallthrough
|
|
case 78:
|
|
cLib_addCalc2(&i_this->field_0xbb8, 55.0f, 0.05f, 0.2f);
|
|
if (i_this->field_0xb44 != 80) break;
|
|
i_this->field_0xb42 = 79;
|
|
i_this->field_0xb44 = 0;
|
|
// fallthrough
|
|
case 79:
|
|
if (i_this->field_0xb44 == 0) {
|
|
i_this->field_0xb60 = a_this->current.pos;
|
|
i_this->field_0xb60.y = a_this->current.pos.y + 120.0f;
|
|
i_this->field_0xb48.set(6899.0f, 3867.0f, -8870.0f);
|
|
} else if (i_this->field_0xb44 == 60) {
|
|
i_this->field_0xb48.set(8222.0f, 3896.0f, -9579.0f);
|
|
}
|
|
cLib_addCalc2(&i_this->field_0xb60.x, a_this->current.pos.x, 0.2f, 60.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, a_this->current.pos.y + 120.0f, 0.1f, 30.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, a_this->current.pos.z, 0.2f, 60.0f);
|
|
if (i_this->field_0xb44 >= 130) {
|
|
cLib_addCalc2(&i_this->field_0xbb8, 40.0f, 0.05f, 0.3f);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 200) {
|
|
i_this->field_0xb42 = 100;
|
|
dComIfGs_onSwitch(83, fopAcM_GetRoomNo(a_this));
|
|
}
|
|
break;
|
|
|
|
case 80:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 81;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
// fallthrough
|
|
case 81:
|
|
if (i_this->field_0xb44 == 0) {
|
|
saru_p[3]->actor.current.pos.x = -500.0f;
|
|
saru_p[3]->actor.current.pos.y = 3681.0f;
|
|
saru_p[3]->actor.current.pos.z = 7485.0f;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 30) {
|
|
saru_p[0]->actor.current.pos.x = player->current.pos.x;
|
|
saru_p[0]->actor.current.pos.y = player->current.pos.y + 500.0f;
|
|
saru_p[0]->actor.current.pos.z = player->current.pos.z - 100.0f;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 60) {
|
|
saru_p[1]->actor.current.pos.x = player->current.pos.x + 200.0f;
|
|
saru_p[1]->actor.current.pos.y = player->current.pos.y + 500.0f;
|
|
saru_p[1]->actor.current.pos.z = player->current.pos.z;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 90) {
|
|
saru_p[2]->actor.current.pos.x = i_this->field_0xb48.x - 250.0f;
|
|
saru_p[2]->actor.current.pos.y = i_this->field_0xb48.y + 200.0f;
|
|
saru_p[2]->actor.current.pos.z = i_this->field_0xb48.z - 100.0f;
|
|
}
|
|
|
|
if (i_this->field_0xb44 < 80) {
|
|
i_this->field_0xb60.set(-333.0f,3316.0f,7149.0f);
|
|
i_this->field_0xb48.set(-531.0f,3295.0f,7381.0f);
|
|
} else {
|
|
i_this->field_0xb60.set(162.0f,3354.0f,6881.0f);
|
|
i_this->field_0xb48.set(263.0f,3374.0f,7168.0f);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 170) {
|
|
i_this->field_0xb42 = 100;
|
|
i_this->field_0xb60.set(-333.0f,3316.0f,7149.0f);
|
|
i_this->field_0xb48.set(-531.0f,3295.0f,7381.0f);
|
|
}
|
|
break;
|
|
|
|
case 110:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 111;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 59.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(3, 0, 0, 0);
|
|
sp50.set(12899.0f, 3767.0f, 3364.0f);
|
|
player->changeDemoPos0(&sp50);
|
|
|
|
i_this->field_0xb60.set(11821.0f, 3889.0f, 4033.0f);
|
|
i_this->field_0xb48.set(11710.0f, 3936.0f, 4253.0f);
|
|
i_this->field_0xb6c.set(12772.0f, 3940.0f, 3565.0f);
|
|
i_this->field_0xb54.set(13003.0f, 4022.0f, 3613.0f);
|
|
|
|
i_this->field_0xb78.x = std::fabsf(i_this->field_0xb54.x - i_this->field_0xb48.x);
|
|
i_this->field_0xb78.y = std::fabsf(i_this->field_0xb54.y - i_this->field_0xb48.y);
|
|
i_this->field_0xb78.z = std::fabsf(i_this->field_0xb54.z - i_this->field_0xb48.z);
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
// fallthrough
|
|
case 111:
|
|
case 112:
|
|
if (i_this->field_0xb44 < 10) {
|
|
sp50.set(11497.0f, 3764.0f, 3810.0f);
|
|
setPlayerPosAndAngle(&sp50, 0x4D5A);
|
|
}
|
|
|
|
if (i_this->field_0xb44 > 5) {
|
|
cam_3d_morf(i_this, 0.1f);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.04f, 1.0f, 0.001f);
|
|
}
|
|
|
|
if (i_this->field_0xbdc == 0 && player->current.pos.x >= 12626.0f) {
|
|
i_this->field_0xbdc = 1;
|
|
JUTReport(300, 220, " PL IN %d");
|
|
brg_p = (obj_brg_class *)fopAcM_SearchByName(44);
|
|
if (brg_p != NULL) {
|
|
brg_p->field_0xaf1c = 4;
|
|
brg_p->field_0xaed0 = 6;
|
|
dComIfGp_particle_set(0x833F, &brg_p->mBr[6].field_0x0bc, &brg_p->mBr[6].field_0x0d4, NULL);
|
|
}
|
|
}
|
|
|
|
if (i_this->field_0xbdc == 1 && player->current.pos.x >= 12714.0f) {
|
|
i_this->field_0xbdc = 2;
|
|
i_this->field_0xb42 = 112;
|
|
daPy_getPlayerActorClass()->changeDemoMode(25, 0, 0, 0);
|
|
i_this->field_0xb44 = 20;
|
|
}
|
|
|
|
if (i_this->field_0xb42 == 112 && i_this->field_0xb44 >= 53) {
|
|
i_this->field_0xb42 = 100;
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = -250.0f;
|
|
MtxPosition(&sp44, &i_this->field_0xb48);
|
|
i_this->field_0xb48 += player->current.pos;
|
|
i_this->field_0xb60 = player->current.pos;
|
|
i_this->field_0xb60.y += 120.0f;
|
|
}
|
|
break;
|
|
|
|
case 200:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 201;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
player->changeDemoMode(2, 0, 0, 0);
|
|
sp50.set(-23451.0f,262.0f,-15980.0f);
|
|
player->changeDemoPos0(&sp50);
|
|
i_this->field_0xb60.set(-22325.0f, 275.0f, -15119.0f);
|
|
i_this->field_0xb48.set(-22672.0f, 311.0f, -15080.0f);
|
|
i_this->field_0xb6c.set(-22343.0f, 273.0f, -15017.0f);
|
|
i_this->field_0xb78.set(0.0f, 0.0f, 0.0f);
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE0]);
|
|
// fallthrough
|
|
case 201:
|
|
if (i_this->field_0xb44 < 30) {
|
|
sp50.set(-22177.0f, 213.0f, -14705.0f);
|
|
setPlayerPosAndAngle(&sp50, -0x5FFD);
|
|
player->speedF = 0.0f;
|
|
}
|
|
|
|
cam_3d_morf(i_this, 0.05f);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.02f, 1.0f, 0.0001f);
|
|
|
|
if (i_this->field_0xb44 == 110) {
|
|
i_this->mMode = 2;
|
|
i_this->field_0xbb4 = 500.0f;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 132) {
|
|
i_this->field_0xc17 = 2;
|
|
|
|
mDoAud_seStart(0x5001A, NULL, 0, 0);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_WIND, 0, -1);
|
|
dComIfGs_setItem(1, 0xFF);
|
|
dMeter2Info_setOilGaugeBackUp(dComIfGs_getOil());
|
|
dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f));
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 139) {
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 144) {
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 0.0f;
|
|
sp44.z = 100.0f;
|
|
MtxPosition(&sp44, &sp50);
|
|
a_this->current.pos = player->current.pos + sp50;
|
|
a_this->current.angle.y = player->shape_angle.y;
|
|
i_this->field_0x8fc.y = player->shape_angle.y;
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 230;
|
|
i_this->mTimers[0] = 65;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 145) {
|
|
i_this->field_0xb42 = 202;
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xb60.set(-22613.0f, 350.0f, -15097.0f);
|
|
i_this->field_0xb48.set(-22275.0f, 350.0f, -15092.0f);
|
|
}
|
|
break;
|
|
|
|
case 202:
|
|
if (i_this->field_0xb44 == 30) {
|
|
i_this->field_0xb60.set(-23371.0f, 380.0f, -15901.0f);
|
|
i_this->field_0xb48.set(-23163.0f, 474.0f, -15653.0f);
|
|
player->changeDemoMode(1, 1, 0, 0);
|
|
}
|
|
|
|
if (i_this->field_0xb44 >= 120) {
|
|
cLib_addCalc2(&i_this->field_0xbb8, 80.0f, 0.05f, 0.2f);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 270) {
|
|
i_this->field_0xb42 = 203;
|
|
i_this->field_0xb44 = 0;
|
|
}
|
|
break;
|
|
|
|
case 203:
|
|
i_this->field_0xb60.set(-22650.0f, 334.0f, -15147.0f);
|
|
i_this->field_0xb48.set(-22277.0f, 355.0f, -15077.0f);
|
|
i_this->field_0xbb8 = 55.0f;
|
|
if (i_this->field_0xb44 == 10) {
|
|
midna_p = daPy_py_c::getMidnaActor();
|
|
midna_p->changeOriginalDemo();
|
|
midna_p->changeDemoMode(2);
|
|
}
|
|
|
|
if (i_this->field_0xb44 >= 100) {
|
|
i_this->field_0xb44 = 100;
|
|
}
|
|
|
|
if (i_this->field_0xb44 >= 70) {
|
|
if (i_this->field_0xb44 == 70) {
|
|
i_this->mMsgFlow.init(a_this, 2015, 0, NULL);
|
|
}
|
|
if (i_this->mMsgFlow.doFlow(a_this, NULL, 0) != 0) {
|
|
i_this->field_0xb42 = 204;
|
|
daPy_py_c::getMidnaActor()->changeDemoMode(5);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 204:
|
|
if (daPy_py_c::getMidnaActor()->checkShadowReturnEnd() != 0) {
|
|
i_this->field_0xb42 = 100;
|
|
}
|
|
break;
|
|
|
|
case 300:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 301;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 60.0f;
|
|
player->changeOriginalDemo();
|
|
i_this->field_0xb60.set(-30827.0f, 411.0f, -17200.0f);
|
|
i_this->field_0xb48.set(-30601.0f, 388.0f, -17465.0f);
|
|
// fallthrough
|
|
case 301:
|
|
sp50.set(-30496.0f, 300.0f, -17449.0f);
|
|
setPlayerPosAndAngle(&sp50, -0x18B4);
|
|
if (i_this->field_0xb44 == 60) {
|
|
i_this->field_0xb42 = 302;
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xb60.set(-30844.0f, 298.0f, -17007.0f);
|
|
i_this->field_0xb48.set(-30653.0f, 357.0f, -17289.0f);
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->field_0xc17 = 3;
|
|
mDoAud_seStart(0x600AC, &i_this->field_0xc04, 0, 0);
|
|
}
|
|
break;
|
|
|
|
case 302:
|
|
if (i_this->field_0xb44 == 30) {
|
|
dComIfGp_setItemOilCount(-(dComIfGs_getMaxOil() & 0xFFFF));
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 80) {
|
|
i_this->field_0xb42 = 303;
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xb60.set(-30887.0f, 429.0f, -17181.0f);
|
|
i_this->field_0xb48.set(-30870.0f, 471.0f, -17527.0f);
|
|
}
|
|
break;
|
|
|
|
case 303:
|
|
if (i_this->field_0xb44 == 10) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 301;
|
|
a_this->speedF = l_HIO.field_0x1c;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 0x50) {
|
|
i_this->field_0xb42 = 100;
|
|
i_this->mMode = 302;
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xe1]);
|
|
dComIfGs_offSwitch(61, fopAcM_GetRoomNo(a_this));
|
|
}
|
|
break;
|
|
|
|
case 350:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 351;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
i_this->field_0xb60 = a_this->current.pos;
|
|
i_this->field_0xb48.set(-37509.0f, 805.0f, -22416.0f);
|
|
// fallthrough
|
|
case 351:
|
|
sp44.set(-36523.0f, 335.0f, -20500.0f);
|
|
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp44, 0xffff8000, 0);
|
|
sp44 = a_this->current.pos;
|
|
cLib_addCalc2(&i_this->field_0xb60.x, sp44.x, 0.2f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.y, sp44.y + 100.0f, 0.2f, 50.0f);
|
|
cLib_addCalc2(&i_this->field_0xb60.z, sp44.z, 0.2f, 50.0f);
|
|
|
|
if (i_this->field_0xb44 == 105) {
|
|
i_this->field_0xb48.set(-37817.0f, 800.0f, -21442.0f);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 178) {
|
|
fpcM_Search(s_fsdown_sub, i_this);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 180) {
|
|
i_this->field_0xb60.set(-36666.0f, 600.0f, -22213.0f);
|
|
i_this->field_0xb48.set(-36489.0f, 399.0f, -20932.0f);
|
|
i_this->field_0xb6c.set(-36574.0f, 421.0f, -21554.0f);
|
|
i_this->field_0xb54.set(-36397.0f, 374.0f, -20263.0f);
|
|
|
|
i_this->field_0xb78.x = std::fabsf(i_this->field_0xb54.x - i_this->field_0xb48.x);
|
|
i_this->field_0xb78.y = std::fabsf(i_this->field_0xb54.y - i_this->field_0xb48.y);
|
|
i_this->field_0xb78.z = std::fabsf(i_this->field_0xb54.z - i_this->field_0xb48.z);
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
i_this->field_0xb42 = 352;
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xb60.y = 1500.0f;
|
|
}
|
|
break;
|
|
|
|
case 352:
|
|
if (i_this->field_0xb44 == 40) {
|
|
i_this->mMode = 40;
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 110) {
|
|
fpcM_Search(s_fsdown_sub, i_this);
|
|
}
|
|
|
|
if (i_this->field_0xb44 > 160) {
|
|
cam_3d_morf(i_this, 0.1f);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.2f, 1.0f, 0.005f);
|
|
} else if (25 < i_this->field_0xb44) {
|
|
cLib_addCalc2(&i_this->field_0xb60.y, 600.0f, 0.5f, 100.0f);
|
|
}
|
|
|
|
if (i_this->field_0xb44 == 230) {
|
|
i_this->field_0xb42 = 100;
|
|
fpcM_Search(s_fsdown_sub, i_this);
|
|
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x220]);
|
|
}
|
|
break;
|
|
|
|
case 360:
|
|
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
|
|
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
|
|
a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e);
|
|
return;
|
|
}
|
|
|
|
i_this->field_0xb42 = 361;
|
|
camera->mCamera.Stop();
|
|
camera->mCamera.SetTrimSize(3);
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xbb8 = 55.0f;
|
|
player->changeOriginalDemo();
|
|
|
|
i_this->field_0xb60.set(-36581.0f, 412.0f, -21418.0f);
|
|
i_this->field_0xb48.set(-36509.0f, 412.0f, -21127.0f);
|
|
i_this->field_0xb6c.set(-38113.0f, 1234.0f, -22897.0f);
|
|
i_this->field_0xb54.set(-37882.0f, 1182.0f, -22713.0f);
|
|
|
|
i_this->field_0xb78.x = std::fabsf(i_this->field_0xb54.x - i_this->field_0xb48.x);
|
|
i_this->field_0xb78.y = std::fabsf(i_this->field_0xb54.y - i_this->field_0xb48.y);
|
|
i_this->field_0xb78.z = std::fabsf(i_this->field_0xb54.z - i_this->field_0xb48.z);
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
anm_init(i_this, 39, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 41;
|
|
i_this->mTimers[0] = 30;
|
|
// fallthrough
|
|
case 361:
|
|
case 362:
|
|
sp44.set(-36540.0f, 335.0f, -20870.0f);
|
|
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp44, 0xffff8000, 0);
|
|
if (i_this->field_0xb44 >= 105) {
|
|
if (i_this->field_0xb44 == 105) {
|
|
i_this->mMsgFlow.init(a_this, 116, 0, NULL);
|
|
}
|
|
|
|
if (i_this->mMsgFlow.getNowMsgNo() == 0x1421) {
|
|
i_this->field_0xb42 = 362;
|
|
i_this->field_0xb44 = 0;
|
|
}
|
|
i_this->mMsgFlow.doFlow(a_this, NULL, 0);
|
|
}
|
|
break;
|
|
|
|
case 363:
|
|
if (i_this->field_0xb44 == 15) {
|
|
i_this->mTimers[2] = 30;
|
|
}
|
|
if (i_this->field_0xb44 >= 30) {
|
|
cam_3d_morf(i_this, 0.2f);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.3f, 1.0f, 0.01f);
|
|
}
|
|
|
|
if (i_this->mMsgFlow.getNowMsgNo() == 0x1423) {
|
|
i_this->field_0xb42 = 363;
|
|
i_this->field_0xb44 = 0;
|
|
i_this->field_0xb6c.set(-36467.0f, 426.0f, -20914.0f);
|
|
i_this->field_0xb54.set(-36244.0f, 409.0f, -20714.0f);
|
|
|
|
i_this->field_0xb78.x = std::fabsf(i_this->field_0xb54.x - i_this->field_0xb48.x);
|
|
i_this->field_0xb78.y = std::fabsf(i_this->field_0xb54.y - i_this->field_0xb48.y);
|
|
i_this->field_0xb78.z = std::fabsf(i_this->field_0xb54.z - i_this->field_0xb48.z);
|
|
i_this->field_0xb84.x = std::fabsf(i_this->field_0xb6c.x - i_this->field_0xb60.x);
|
|
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
|
|
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
|
|
i_this->field_0xbc4 = 0.0f;
|
|
}
|
|
i_this->mMsgFlow.doFlow(a_this, NULL, 0);
|
|
break;
|
|
|
|
case 364:
|
|
cam_3d_morf(i_this, 0.1f);
|
|
cLib_addCalc2(&i_this->field_0xbc4, 0.3f, 1.0f, 0.01f);
|
|
if (i_this->mMsgFlow.doFlow(a_this, NULL, 0) != 0) {
|
|
i_this->field_0xb42 = 100;
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
if (i_this->field_0xb42 == 99 || i_this->field_0xb42 == 98) {
|
|
if (i_this->field_0xb42 == 99) {
|
|
fopAcM_delete(a_this);
|
|
}
|
|
|
|
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
|
|
sp44.x = 0.0f;
|
|
sp44.y = 100.0f;
|
|
sp44.z = -250.0f;
|
|
MtxPosition(&sp44, &i_this->field_0xb48);
|
|
i_this->field_0xb48 += player->current.pos;
|
|
i_this->field_0xb60 = player->current.pos;
|
|
i_this->field_0xb60.y += 120.0f;
|
|
i_this->field_0xb42 = 100;
|
|
}
|
|
|
|
if (i_this->field_0xb42 == 100) {
|
|
camera->mCamera.Reset(i_this->field_0xb60, i_this->field_0xb48, i_this->field_0xbb8, 0);
|
|
camera->mCamera.Start();
|
|
camera->mCamera.SetTrimSize(0);
|
|
dComIfGp_event_reset();
|
|
daPy_getPlayerActorClass()->cancelOriginalDemo();
|
|
i_this->field_0xb42 = 0;
|
|
}
|
|
|
|
if (i_this->field_0xb42 != 0) {
|
|
camera->mCamera.Set(i_this->field_0xb60, i_this->field_0xb48, i_this->field_0xbb8, 0);
|
|
i_this->field_0xb44++;
|
|
}
|
|
}
|
|
|
|
/* 80A5280C-80A52898 00996C 008C+00 3/3 0/0 0/0 .text saru_count_check__FP12npc_ks_class */
|
|
static int saru_count_check(npc_ks_class* i_this) {
|
|
obj_sw_class* sw_p = (obj_sw_class*)fpcM_Search(s_sw_sub, i_this);
|
|
i_this->field_0x934 = sw_p;
|
|
if (i_this->field_0x934 == NULL) {
|
|
return 0;
|
|
} else {
|
|
for (int i = 0; i < i_this->field_0x934->field_0x91c; i++) {
|
|
if (saru_p[i] == NULL) {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
/* 80A52898-80A533B4 0099F8 0B1C+00 2/1 0/0 0/0 .text action_check__FP12npc_ks_class */
|
|
static void action_check(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
|
cXyz spd4;
|
|
|
|
switch (fopAcM_GetRoomNo(a_this)) {
|
|
case 0:
|
|
if (!dComIfGp_event_runCheck() && i_this->field_0x5b6 == 0) {
|
|
if (saru_p[1] == NULL) {
|
|
if (dComIfGs_isSwitch(22, fopAcM_GetRoomNo(a_this))) {
|
|
spd4.x = a_this->current.pos.x - 5.0f;
|
|
spd4.z = a_this->current.pos.z - 5274.0f;
|
|
if (JMAFastSqrt(spd4.x * spd4.x + spd4.z * spd4.z) < 500.0f) {
|
|
i_this->mActionID = 110;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 1;
|
|
return;
|
|
}
|
|
} else {
|
|
dBgS_GndChk dStack_74;
|
|
spd4.set(0.0f, 3250.0f, 6500.0f);
|
|
dStack_74.SetPos(&spd4);
|
|
if (dComIfG_Bgsp().GroundCross(&dStack_74) > 3000.0f) {
|
|
i_this->mActionID = 112;
|
|
i_this->mMode = 0;
|
|
if (a_this->current.pos.y < 3000.0f) {
|
|
a_this->current.pos = player->current.pos;
|
|
a_this->old.pos = a_this->current.pos;
|
|
}
|
|
|
|
i_this->field_0xaec = 1;
|
|
return;
|
|
}
|
|
}
|
|
} else if (saru_p[1] != NULL && saru_p[2] != NULL && saru_p[3] != NULL) {
|
|
if (player->current.pos.y < 3000.0f) {
|
|
dComIfGs_onSwitch(82, fopAcM_GetRoomNo(a_this));
|
|
}
|
|
|
|
if (!dComIfGs_isSwitch(82, fopAcM_GetRoomNo(a_this))) {
|
|
spd4.x = player->current.pos.x - -500.0f;
|
|
spd4.z = player->current.pos.z - 7211.0f;
|
|
if (JMAFastSqrt(spd4.x * spd4.x + spd4.z * spd4.z) < 200.0f) {
|
|
dComIfGs_onSwitch(82, fopAcM_GetRoomNo(a_this));
|
|
for (int i = 0; i < 4; i++) {
|
|
saru_p[i]->mActionID = 111;
|
|
saru_p[i]->mMode = 0;
|
|
saru_p[i]->field_0xaec = 1;
|
|
}
|
|
i_this->field_0xb42 = 80;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!dComIfGs_isSwitch(82, fopAcM_GetRoomNo(a_this)) && saru_count_check(i_this) != 0) {
|
|
if (dComIfGs_isSwitch(22, fopAcM_GetRoomNo(a_this))) {
|
|
for (int i = 0; i < 2; i++) {
|
|
spd4 = player->current.pos - i_this->field_0x934->field_0x904[i];
|
|
if (spd4.abs() < 300.0f) {
|
|
i_this->field_0xbd9 = 0;
|
|
i_this->mActionID = 20;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 0;
|
|
i_this->field_0xbc8 = i_this->field_0x934->field_0x904[i];
|
|
spd4 = i_this->field_0x934->field_0x904[i - 1] - i_this->field_0xbc8;
|
|
leader->field_0xbd4 = cM_atan2s(spd4.x, spd4.z);
|
|
leader->field_0xb42 = 10;
|
|
leader->field_0xb40 = i_this->field_0x934->field_0x570;
|
|
|
|
if (i_this->field_0x5b6 != 0) {
|
|
leader->field_0x934 = i_this->field_0x934;
|
|
leader->field_0xbc8 = i_this->field_0xbc8;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
if (!dComIfGp_event_runCheck() && i_this->field_0x5b6 == 0 && saru_p[1] == NULL && a_this->field_0x567 == 0) {
|
|
spd4.x = a_this->current.pos.x - 5334.0f;
|
|
spd4.z = a_this->current.pos.z - 7609.0f;
|
|
if (JMAFastSqrt(spd4.x * spd4.x + spd4.z * spd4.z) < 700.0f) {
|
|
i_this->mActionID = 113;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 1;
|
|
a_this->field_0x567 = 1;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
case 4:
|
|
if (saru_count_check(i_this) != 0) {
|
|
int iVar1 = 1;
|
|
if (fopAcM_GetRoomNo(a_this) == 2) {
|
|
for (int i = 0; i < i_this->field_0x934->field_0x91c; i++) {
|
|
spd4 = player->current.pos - saru_p[i]->actor.current.pos;
|
|
if (spd4.abs() > 400.0f) {
|
|
iVar1 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (iVar1 != 0) {
|
|
spd4.x = player->current.pos.x - i_this->field_0x934->field_0x904[0].x;
|
|
spd4.y = player->current.pos.y - (i_this->field_0x934->field_0x904[0].y - 450.0f);
|
|
spd4.z = player->current.pos.z - i_this->field_0x934->field_0x904[0].z;
|
|
if (spd4.abs() < 300.0f) {
|
|
i_this->field_0xbc8 = i_this->field_0x934->field_0x904[0];
|
|
if (i_this->field_0x5b6 == 0) {
|
|
i_this->field_0xbd9 = 0;
|
|
i_this->mActionID = 20;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 0;
|
|
leader->field_0xb42 = 10;
|
|
leader->field_0xb40 = 0;
|
|
leader->field_0xbc8 = i_this->field_0xbc8;
|
|
spd4 = i_this->field_0x934->field_0x904[1] - i_this->field_0xbc8;
|
|
leader->field_0xbd4 = cM_atan2s(spd4.x, spd4.z);
|
|
} else {
|
|
i_this->mActionID = 22;
|
|
i_this->mMode = 0;
|
|
i_this->field_0x930 = leader;
|
|
}
|
|
}
|
|
}
|
|
} else if (!checkDoorDemo() && fopAcM_GetRoomNo(a_this) == 4 && i_this->field_0x5b6 == 0) {
|
|
if (!dComIfGs_isSwitch(22, fopAcM_GetRoomNo(a_this))) {
|
|
i_this->mActionID = 203;
|
|
i_this->mMode = 0;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 9:
|
|
if (!dComIfGp_event_runCheck() && i_this->field_0x5b6 == 4 && player->current.pos.z < -3900.0f) {
|
|
if (!dComIfGs_isSwitch(81, fopAcM_GetRoomNo(a_this))) {
|
|
dBgS_GndChk dStack_c8;
|
|
spd4.set(7275.0f, 3373.0f, -4790.0f);
|
|
dStack_c8.SetPos(&spd4);
|
|
if (dComIfG_Bgsp().GroundCross(&dStack_c8) > 3000.0f) {
|
|
i_this->mActionID = 115;
|
|
i_this->mMode = 0;
|
|
dComIfGs_onSwitch(81, fopAcM_GetRoomNo(a_this));
|
|
i_this->field_0xaec = 1;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
if (!dComIfGp_event_runCheck() && i_this->field_0x5b6 == 4) {
|
|
if (!dComIfGs_isSwitch(83, fopAcM_GetRoomNo(a_this))) {
|
|
i_this->mActionID = 204;
|
|
i_this->mMode = 0;
|
|
fopAcM_setRoomLayer(i_this, 12);
|
|
i_this->field_0xb42 = 77;
|
|
i_this->field_0xaec = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80A533B4-80A5352C 00A514 0178+00 1/1 0/0 0/0 .text water_check__FP12npc_ks_class4cXyzf */
|
|
static BOOL water_check(npc_ks_class* i_this, cXyz param_2, f32 param_3) {
|
|
// NONMATCHING
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
dBgS_GndChk dStack_80;
|
|
dBgS_LinChk dStack_f0;
|
|
cXyz sp154;
|
|
sp154.x = param_2.x;
|
|
sp154.y = param_2.y + 3000.0f;
|
|
sp154.z = param_2.z;
|
|
dStack_f0.Set(&a_this->current.pos, &sp154, a_this);
|
|
if (dComIfG_Bgsp().LineCross(&dStack_f0)) {
|
|
sp154.y = dStack_f0.GetCross().y - 10.0f;;
|
|
}
|
|
|
|
dBgS_ObjGndChk_Spl cStack_148;
|
|
cStack_148.SetPos(&sp154);
|
|
i_this->field_0x63c = dComIfG_Bgsp().GroundCross(&cStack_148);
|
|
sp154.y = i_this->field_0x63c + 60.0f;
|
|
|
|
dStack_80.SetPos(&sp154);
|
|
if ((i_this->field_0x63c - dComIfG_Bgsp().GroundCross(&dStack_80)) > param_3) {
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 80A5FF54 */
|
|
static u8 gap_05_00000114_bss;
|
|
|
|
/* 80A5352C-80A548E4 00A68C 13B8+00 2/1 0/0 0/0 .text npc_ks_option__FP12npc_ks_class */
|
|
static int npc_ks_option(npc_ks_class* i_this) {
|
|
// NONMATCHING
|
|
static u16 w_eff_id[4] = {
|
|
0x01B8, 0x01B9, 0x01BA, 0x01BB
|
|
};
|
|
|
|
fopAc_ac_c* a_this = &i_this->actor;
|
|
fopAc_ac_c* actor_p;
|
|
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
|
cXyz sp140, sp14c;
|
|
f32 fVar3 = 0.0f;
|
|
f32 fVar4 = 5.0f;
|
|
int iVar4 = 0;
|
|
int iVar3 = 1;
|
|
int iVar2 = 1;
|
|
int iVar1 = 1;
|
|
s16 sVar1 = 0x800;
|
|
int frame = i_this->mpModelMorf->getFrame();
|
|
f32 fVar1 = 0.0f;
|
|
f32 fVar2;
|
|
u32 i_soundID;
|
|
if (fopAcM_GetRoomNo(a_this) == 7 || fopAcM_GetRoomNo(a_this) == 8) {
|
|
fVar1 = 10000.0f;
|
|
}
|
|
|
|
if (daPy_getPlayerActorClass()->checkAutoJumpStart() && i_this->field_0xbd8 < 3) {
|
|
i_this->field_0xbd8++;
|
|
}
|
|
|
|
if (i_this->mMode >= 30 && i_this->mMode < 40) {
|
|
actor_p = bomb_check(i_this);
|
|
if (actor_p == NULL) {
|
|
i_this->mMode = 0;
|
|
} else {
|
|
a_this->health = 0;
|
|
sp140.x = actor_p->current.pos.x - a_this->current.pos.x;
|
|
sp140.z = actor_p->current.pos.z - a_this->current.pos.z;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp140.x, sp140.z);
|
|
fVar2 = JMAFastSqrt(sp140.x * sp140.x + sp140.z * sp140.z);
|
|
}
|
|
} else if (i_this->mMode >= 40 && i_this->mMode < 50) {
|
|
actor_p = enemy_check(i_this, fVar1 + 700.0f);
|
|
if (actor_p == NULL) {
|
|
i_this->mMode = 0;
|
|
} else {
|
|
a_this->health = 0;
|
|
if (i_this->mMode == 40) {
|
|
sp140.x = actor_p->current.pos.x - a_this->current.pos.x;
|
|
sp140.z = actor_p->current.pos.z - a_this->current.pos.z;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp140.x, sp140.z);
|
|
fVar2 = JMAFastSqrt(sp140.x * sp140.x + sp140.z * sp140.z);
|
|
}
|
|
}
|
|
}
|
|
|
|
fVar1 = l_HIO.field_0xc;
|
|
if (checkDoorDemo()) {
|
|
fVar1 -= 70.0f;
|
|
}
|
|
|
|
switch (i_this->mMode) {
|
|
case 0:
|
|
i_this->mMode = 1;
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(100.0f) + 100.0f;
|
|
fopAcM_setStageLayer(i_this);
|
|
a_this->health = 0;
|
|
// fallthrough
|
|
case 1:
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
if (i_this->field_0x5d0 != 51) {
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(100.0f) + 80.0f;
|
|
i_soundID = Z2SE_KOSARU_V_WAIT;
|
|
}
|
|
} else if (i_this->field_0x5d0 != 53) {
|
|
anm_init(i_this, 53, 8.0f, 2, 1.0f);
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 40.0f;
|
|
i_soundID = Z2SE_KOSARU_V_WAIT;
|
|
}
|
|
|
|
}
|
|
|
|
if (i_this->mTimers[1] == 0 && i_this->field_0x5c4 > (fVar1 + 20.0f)) {
|
|
anm_init(i_this, 28, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 2;
|
|
i_soundID = Z2SE_KOSARU_V_JUMP;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
fVar3 = l_HIO.field_0x10;
|
|
if (i_this->field_0x5c4 < (fVar1 - 20.0f)) {
|
|
i_this->mMode = 0;
|
|
} else if ((fVar1 + 200.0f) > i_this->field_0x5c4) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 3;
|
|
i_soundID = Z2SE_KOSARU_V_WALK;
|
|
}
|
|
|
|
if (i_this->mObjAcch.ChkWallHit() && i_this->mObjAcch.ChkGroundHit() && !otherBgCheck(a_this, player)) {
|
|
a_this->speed.y = 30.0f;
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
fVar3 = l_HIO.field_0x14;
|
|
if (i_this->mpModelMorf->checkFrame(1.0f)) {
|
|
i_soundID = Z2SE_KOSARU_V_WALK;
|
|
}
|
|
|
|
if (i_this->field_0x5c4 < (fVar1 + 130.0f)) {
|
|
anm_init(i_this, 28, 3.0f, 2, 1.0f);
|
|
i_this->mMode = 2;
|
|
}
|
|
|
|
if (i_this->mObjAcch.ChkWallHit() && i_this->mObjAcch.ChkGroundHit() && !otherBgCheck(a_this, player)) {
|
|
a_this->speed.y = 30.0f;
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
if (frame >= 11) {
|
|
i_this->mMode = 0;
|
|
}
|
|
break;
|
|
|
|
case 7:
|
|
anm_init(i_this, 47, 3.0f, 2, i_this->field_0x5d4);
|
|
i_this->mMode = 8;
|
|
// fallthrough
|
|
case 8:
|
|
if (i_this->mpModelMorf->checkFrame(1.0f)) {
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_SWIM, 0, -1);
|
|
}
|
|
|
|
iVar1 = 0;
|
|
a_this->gravity = 0.0f;
|
|
cLib_addCalc0(&a_this->speed.y, 1.0f, 1.0f);
|
|
cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x63c, 0.1f, 10.0f);
|
|
|
|
if (i_this->field_0x5c4 > (fVar1 + 50.0f)) {
|
|
fVar3 = 5.0f;
|
|
} else {
|
|
fVar3 = 0.0f;
|
|
}
|
|
|
|
cLib_addCalc2(&i_this->field_0x5d4, fVar3 + 0.5f, 1.0f, 0.1f);
|
|
i_this->mpModelMorf->setPlaySpeed(i_this->field_0x5d4);
|
|
|
|
fVar4 = 0.1f;
|
|
sVar1 = 0x100;
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 20.0f;
|
|
i_soundID = Z2SE_KOSARU_V_WAIT;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
i_this->mTimers[0] = cM_rndF(30.0f) + 20.0f;
|
|
i_this->mMode = 11;
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
// fallthrough
|
|
case 11:
|
|
i_this->field_0x5fc = 1;
|
|
if (i_this->mTimers[0] == 0) {
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
anm_init(i_this, 30, 3.0f, 0, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 5, 3.0f, 0, 1.0f);
|
|
}
|
|
|
|
i_this->mMode = 12;
|
|
}
|
|
break;
|
|
|
|
case 12:
|
|
i_this->field_0x5fc = 1;
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
anm_init(i_this, 30, 3.0f, 0, 1.0f);
|
|
} else {
|
|
anm_init(i_this, 5, 3.0f, 0, 1.0f);
|
|
}
|
|
|
|
i_this->mMode = 13;
|
|
}
|
|
break;
|
|
|
|
case 13:
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 0;
|
|
}
|
|
break;
|
|
|
|
case 20:
|
|
iVar2 = 0;
|
|
if (i_this->mTimers[0] == 0) {
|
|
i_this->mActionID = 200;
|
|
i_this->mMode = 0;
|
|
i_this->field_0xaec = 0;
|
|
return 1;
|
|
}
|
|
break;
|
|
|
|
case 30:
|
|
fVar3 = l_HIO.field_0x14;
|
|
i_this->field_0x8fc.y += 0x8000;
|
|
if (fVar2 > 400.0f) {
|
|
i_this->mMode = 31;
|
|
anm_init(i_this, 51, 5.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 31:
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
i_this->field_0x938 = fopAcM_GetID(actor_p);
|
|
i_this->field_0x5fc = 1;
|
|
if (fVar2 < 350.0f) {
|
|
i_this->mMode = 30;
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 40:
|
|
anm_init(i_this, 39, 5.0f, 2, 1.0f);
|
|
i_this->mMode = 41;
|
|
i_this->mTimers[0] = cM_rndF(80.0f) + 100.0f;
|
|
i_this->field_0x8fc.y += 0x8000;
|
|
break;
|
|
|
|
case 41:
|
|
sVar1 = 0x1000;
|
|
if ((i_this->field_0x5d0 == 39 || (i_this->field_0x5d0 == 43 && frame < 7)) || ((frame > 40 && frame < 48) || frame > 65)) {
|
|
i_this->field_0x5e0 = 4;
|
|
}
|
|
|
|
if (i_this->mTimers[0] == 0 && i_this->field_0x5d0 == 39) {
|
|
anm_init(i_this, 43, 5.0f, 0, 1.0f);
|
|
}
|
|
|
|
if (i_this->field_0x5d0 == 43) {
|
|
if (i_this->mpModelMorf->isStop()) {
|
|
i_this->mMode = 40;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 50:
|
|
iVar3 = 2;
|
|
a_this->speedF = 0.0f;
|
|
if (i_this->mTimers[0] == 0) {
|
|
fopAc_ac_c* player_p2 = dComIfGp_getPlayer(0);
|
|
cMtx_YrotS(*calc_mtx, player_p2->shape_angle.y);
|
|
sp140.y = 50.0f;
|
|
sp140.z = 0.0f;
|
|
|
|
int i = 0;
|
|
for (; i < 2; i++) {
|
|
dBgS_GndChk dStack_e0;
|
|
sp140.x = yuka_jump_x;
|
|
MtxPosition(&sp140, &sp14c);
|
|
sp14c += player_p2->current.pos;
|
|
dStack_e0.SetPos(&sp14c);
|
|
sp14c.y = dComIfG_Bgsp().GroundCross(&dStack_e0);
|
|
yuka_jump_x *= -1.0f;
|
|
if (fabsf(sp14c.y - player_p2->current.pos.y) < 20.0f) {
|
|
i_this->mMode = 51;
|
|
i_this->field_0x8f0 = sp14c;
|
|
i_this->field_0x910 = a_this->current.pos;
|
|
i_this->field_0x91c = i_this->field_0x8f0;
|
|
anm_init(i_this, 32, 2.0f, 0, 1.0f);
|
|
break;
|
|
}
|
|
}
|
|
if (i == 2) {
|
|
i_this->mMode = 0;
|
|
}
|
|
}
|
|
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
fVar3 = 4096.0f;
|
|
break;
|
|
|
|
case 51:
|
|
iVar3 = 2;
|
|
if (i_this->field_0x5d0 == 32 && i_this->mpModelMorf->isStop()) {
|
|
anm_init(i_this, 35, 1.0f, 0, 1.0f);
|
|
a_this->speedF = 40.0f;
|
|
i_this->mSound.startCreatureVoice(Z2SE_KOSARU_V_JUMP, -1);
|
|
i_this->mSound.startCreatureSound(Z2SE_KOSARU_JUMP_START, 0, -1);
|
|
i_this->field_0xbe0 = 1;
|
|
}
|
|
|
|
sp140 = i_this->field_0x8f0 - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp140.x, sp140.z);
|
|
i_this->field_0x8fc.x = -cM_atan2s(sp140.y, JMAFastSqrt(sp140.x * sp140.x + sp140.z * sp140.z));
|
|
sVar1 = 0x2000;
|
|
|
|
if (a_this->speedF > 25.0f) {
|
|
i_this->field_0x90c = 1;
|
|
}
|
|
|
|
if (sp140.abs() <= a_this->speedF * 1.2f) {
|
|
i_this->mMode = 0;
|
|
a_this->speedF *= 0.5f;
|
|
i_this->field_0xbe0 = 1;
|
|
return iVar3;
|
|
}
|
|
|
|
fVar3 = a_this->speedF;
|
|
}
|
|
|
|
cLib_addCalc2(&a_this->speedF, fVar3, 1.0f, fVar4);
|
|
if (i_this->mMode < 7) {
|
|
i_this->field_0x5fc = 1;
|
|
if (fVar3 > 1.0f) {
|
|
i_this->field_0x8fc.y = i_this->field_0x5c8;
|
|
} else {
|
|
s16 sVar2 = a_this->current.angle.y - i_this->field_0x5c8;
|
|
if ((sVar2 > 0x3000 || sVar2 < -0x3000) && i_this->mMode < 5) {
|
|
anm_init(i_this, 28, 3.0f, 0, 1.0f);
|
|
i_this->mMode = 5;
|
|
i_soundID = Z2SE_KOSARU_V_WALK;
|
|
}
|
|
}
|
|
|
|
if (a_this->health != 0) {
|
|
a_this->health = 0;
|
|
i_this->mMode = 10;
|
|
return iVar3;
|
|
}
|
|
|
|
if (!checkDoorDemo()) {
|
|
npc_ks_class* npc_ks_p = (npc_ks_class*)fpcM_Search(s_01_sub, i_this);
|
|
if (npc_ks_p != NULL) {
|
|
sp140 = npc_ks_p->actor.current.pos - a_this->current.pos;
|
|
i_this->field_0x8fc.y = cM_atan2s(sp140.x, sp140.z);
|
|
i_this->mMode = 20;
|
|
i_this->mTimers[0] = 60;
|
|
return iVar3;
|
|
}
|
|
}
|
|
|
|
if (i_this->mTimers[3] == 0) {
|
|
if (cM_rndF(1.0f) < 0.5f) {
|
|
i_this->field_0x938 = fopAcM_GetID(en_search_test(i_this));
|
|
} else {
|
|
i_this->field_0x938 = -1;
|
|
}
|
|
|
|
i_this->mTimers[3] = cM_rndF(30.0f) + 30.0f;
|
|
}
|
|
|
|
if ((i_this->field_0x5e6 & 15) == 0 && bomb_view_check(i_this) != NULL) {
|
|
i_this->mMode = 30;
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
return iVar3;
|
|
}
|
|
|
|
if ((i_this->field_0x5e6 + 2 & 15) == 0 && enemy_view_check(i_this, fVar1 + 600.0f) != NULL) {
|
|
i_this->mMode = 40;
|
|
return iVar3;
|
|
}
|
|
}
|
|
|
|
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x8fc.y, 2, sVar1);
|
|
cLib_addCalcAngleS2(&a_this->current.angle.x, 0, 1, 0x800);
|
|
|
|
fopAc_ac_c* player_p3 = dComIfGp_getPlayer(0);
|
|
if (iVar2 != 0) {
|
|
if (fabsf(player_p3->current.pos.y - a_this->current.pos.y) > 3000.0f) {
|
|
if (fopAcM_CheckCondition(a_this, 4) != 0) {
|
|
if (fopAcM_otherBgCheck(a_this, dComIfGp_getPlayer(0))) {
|
|
if (iVar1 != 0 && player_p3->speedF > 2.0f) {
|
|
camera_class* camera = dComIfGp_getCamera(0);
|
|
sp140.x = camera->lookat.eye.x - camera->lookat.center.x;
|
|
sp140.z = camera->lookat.eye.z - camera->lookat.center.z;
|
|
cMtx_YrotS(*calc_mtx, cM_atan2s(sp140.x, sp140.z));
|
|
sp140.x = 0.0f;
|
|
sp140.y = -50.0f;
|
|
sp140.z = 100.0f;
|
|
MtxPosition(&sp140, &sp14c);
|
|
sp14c += camera->lookat.eye;
|
|
|
|
dBgS_GndChk dStack_134;
|
|
dStack_134.SetPos(&sp14c);
|
|
if (fabs(sp14c.y - dComIfG_Bgsp().GroundCross(&dStack_134)) < 500.0f) {
|
|
a_this->current.pos = sp14c;
|
|
a_this->old = a_this->current;
|
|
OS_REPORT("////////KS OP RESET \n");
|
|
} else {
|
|
OS_REPORT("////////KS OP NO FLOOR・NONRESET \n");
|
|
iVar4 = 0;
|
|
}
|
|
} else {
|
|
iVar4 = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (iVar4 != 0) {
|
|
i_this->mSound.startCreatureVoice(i_soundID, -1);
|
|
}
|
|
|
|
if (i_this->field_0x94c != 0 && (i_this->field_0x5d0 == 26 || i_this->field_0x5d0 == 28)) {
|
|
anm_init(i_this, 55, 3.0f, 2, 1.0f);
|
|
} else if (i_this->field_0x94c == 0 && i_this->field_0x5d0 == 55) {
|
|
anm_init(i_this, 26, 3.0f, 2, 1.0f);
|
|
}
|
|
|
|
if (iVar1 != 0) {
|
|
if (i_this->field_0xbdd != 0 && a_this->current.pos.y < i_this->field_0x63c) {
|
|
if (a_this->speed.y < -10.0f) {
|
|
a_this->speed.y = -10.0f;
|
|
}
|
|
|
|
i_this->mMode = 7;
|
|
a_this->speedF = 0.0f;
|
|
i_this->field_0x5d4 = 0.0f;
|
|
cXyz sp158 = a_this->current.pos;
|
|
sp158.y = i_this->field_0x63c;
|
|
|
|
static cXyz sc;
|
|
if (gap_05_00000114_bss == 0) {
|
|
sc = cXyz(1.0f, 1.0f, 1.0f);
|
|
gap_05_00000114_bss = 1;
|
|
}
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
i_this->field_0xbe4[i] = dComIfGp_particle_set(i_this->field_0xbe4[i], w_eff_id[i], &sp158, &a_this->tevStr, NULL,
|
|
&sc, 0xFF, NULL, -1, NULL, NULL, NULL);
|
|
}
|
|
|
|
i_this->mSound.startCreatureSound(Z2SE_AL_INTO_WATER, 0, -1);
|
|
return iVar3;
|
|
}
|
|
|
|
if (i_this->mMode < 50 && i_this->field_0xbd8 != 0) {
|
|
i_this->field_0xbd8--;
|
|
i_this->mMode = 50;
|
|
i_this->mTimers[0] = 20;
|
|
}
|
|
} else {
|
|
if (a_this->speedF >= 3.0f) {
|
|
fVar4 = 0.2f;
|
|
} else {
|
|
fVar4 = 0.05f;
|
|
}
|
|
|
|
cXyz sp164 = a_this->current.pos;
|
|
sp164.y = i_this->field_0x63c;
|
|
fopAcM_effHamonSet(&i_this->field_0xbf4, &sp164, 1.5f, fVar4);
|
|
if (i_this->field_0xbdd == 0) {
|
|
i_this->mMode = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
action_check(i_this);
|
|
return iVar3;
|
|
}
|
|
|
|
/* 80A548E4-80A54A14 00BA44 0130+00 1/1 0/0 0/0 .text npc_ks_awaydoor__FP12npc_ks_class */
|
|
static void npc_ks_awaydoor(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A54A14-80A55174 00BB74 0760+00 1/1 0/0 0/0 .text npc_ks_guide_00__FP12npc_ks_class */
|
|
static void npc_ks_guide_00(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E310-80A5E314 000414 0004+00 0/1 0/0 0/0 .rodata @8131 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8131 = 130.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E310, &lit_8131);
|
|
#pragma pop
|
|
|
|
/* 80A5E314-80A5E318 000418 0004+00 0/0 0/0 0/0 .rodata @8132 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8132 = 4096.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E314, &lit_8132);
|
|
#pragma pop
|
|
|
|
/* 80A5E318-80A5E31C 00041C 0004+00 0/0 0/0 0/0 .rodata @8133 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8133 = 1.5f;
|
|
COMPILER_STRIP_GATE(0x80A5E318, &lit_8133);
|
|
#pragma pop
|
|
|
|
/* 80A5E31C-80A5E320 000420 0004+00 0/3 0/0 0/0 .rodata @8356 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8356 = 900.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E31C, &lit_8356);
|
|
#pragma pop
|
|
|
|
/* 80A5E320-80A5E324 000424 0004+00 0/1 0/0 0/0 .rodata @8357 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8357 = 750.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E320, &lit_8357);
|
|
#pragma pop
|
|
|
|
/* 80A55174-80A5546C 00C2D4 02F8+00 1/1 0/0 0/0 .text npc_ks_guide_00_2__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_00_2(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5546C-80A559B4 00C5CC 0548+00 1/1 0/0 0/0 .text npc_ks_guide_00_3__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_00_3(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E324-80A5E328 000428 0004+00 0/1 0/0 0/0 .rodata @8644 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8644 = 9200.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E324, &lit_8644);
|
|
#pragma pop
|
|
|
|
/* 80A5E328-80A5E32C 00042C 0004+00 0/1 0/0 0/0 .rodata @8645 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8645 = 4839.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E328, &lit_8645);
|
|
#pragma pop
|
|
|
|
/* 80A559B4-80A562EC 00CB14 0938+00 1/1 0/0 0/0 .text npc_ks_guide_01__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_01(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A562EC-80A56A1C 00D44C 0730+00 1/1 0/0 0/0 .text npc_ks_guide_02__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_02(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E32C-80A5E330 000430 0004+00 0/1 0/0 0/0 .rodata @8912 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_8912 = 110.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E32C, &lit_8912);
|
|
#pragma pop
|
|
|
|
/* 80A56A1C-80A57124 00DB7C 0708+00 1/1 0/0 0/0 .text npc_ks_guide_22__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_22(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A57124-80A57998 00E284 0874+00 1/1 0/0 0/0 .text npc_ks_guide_09__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_09(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A57998-80A57ED4 00EAF8 053C+00 1/1 0/0 0/0 .text npc_ks_demo_12__FP12npc_ks_class */
|
|
static void npc_ks_demo_12(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E330-80A5E334 000434 0004+00 0/1 0/0 0/0 .rodata @9260 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9260 = 7280.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E330, &lit_9260);
|
|
#pragma pop
|
|
|
|
/* 80A5E334-80A5E338 000438 0004+00 0/1 0/0 0/0 .rodata @9261 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9261 = -2709.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E334, &lit_9261);
|
|
#pragma pop
|
|
|
|
/* 80A57ED4-80A58274 00F034 03A0+00 1/1 0/0 0/0 .text npc_ks_guide_0409__FP12npc_ks_class
|
|
*/
|
|
static void npc_ks_guide_0409(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A58274-80A58410 00F3D4 019C+00 1/1 0/0 0/0 .text path_search__FP12npc_ks_class */
|
|
static void path_search(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E338-80A5E33C 00043C 0004+00 0/1 0/0 0/0 .rodata @9545 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9545 = -27426.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E338, &lit_9545);
|
|
#pragma pop
|
|
|
|
/* 80A5E33C-80A5E340 000440 0004+00 0/1 0/0 0/0 .rodata @9546 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9546 = -20000.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E33C, &lit_9546);
|
|
#pragma pop
|
|
|
|
/* 80A5E340-80A5E344 000444 0004+00 0/1 0/0 0/0 .rodata @9547 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9547 = 7500.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E340, &lit_9547);
|
|
#pragma pop
|
|
|
|
/* 80A5E344-80A5E348 000448 0004+00 0/1 0/0 0/0 .rodata @9548 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9548 = 6.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E344, &lit_9548);
|
|
#pragma pop
|
|
|
|
/* 80A5E348-80A5E34C 00044C 0004+00 0/1 0/0 0/0 .rodata @9549 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9549 = 1.25f;
|
|
COMPILER_STRIP_GATE(0x80A5E348, &lit_9549);
|
|
#pragma pop
|
|
|
|
/* 80A5E34C-80A5E350 000450 0004+00 0/1 0/0 0/0 .rodata @9550 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9550 = -30900.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E34C, &lit_9550);
|
|
#pragma pop
|
|
|
|
/* 80A5E350-80A5E354 000454 0004+00 0/1 0/0 0/0 .rodata @9551 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9551 = -15756.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E350, &lit_9551);
|
|
#pragma pop
|
|
|
|
/* 80A5E354-80A5E358 000458 0004+00 0/1 0/0 0/0 .rodata @9552 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9552 = 1300.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E354, &lit_9552);
|
|
#pragma pop
|
|
|
|
/* 80A5E358-80A5E35C 00045C 0004+00 0/1 0/0 0/0 .rodata @9553 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9553 = -31872.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E358, &lit_9553);
|
|
#pragma pop
|
|
|
|
/* 80A5E35C-80A5E360 000460 0004+00 0/1 0/0 0/0 .rodata @9554 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9554 = -15490.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E35C, &lit_9554);
|
|
#pragma pop
|
|
|
|
/* 80A58410-80A58FE0 00F570 0BD0+00 1/1 0/0 0/0 .text npc_ks_mori__FP12npc_ks_class */
|
|
static void npc_ks_mori(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E360-80A5E364 000464 0004+00 0/1 0/0 0/0 .rodata @9862 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9862 = -39906.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E360, &lit_9862);
|
|
#pragma pop
|
|
|
|
/* 80A5E364-80A5E368 000468 0004+00 0/1 0/0 0/0 .rodata @9863 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9863 = 21962.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E364, &lit_9863);
|
|
#pragma pop
|
|
|
|
/* 80A5E368-80A5E36C 00046C 0004+00 0/1 0/0 0/0 .rodata @9864 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9864 = -24243.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E368, &lit_9864);
|
|
#pragma pop
|
|
|
|
/* 80A5E36C-80A5E370 000470 0004+00 0/1 0/0 0/0 .rodata @9865 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9865 = -21000.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E36C, &lit_9865);
|
|
#pragma pop
|
|
|
|
/* 80A5E370-80A5E374 000474 0004+00 0/1 0/0 0/0 .rodata @9866 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9866 = 1962.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E370, &lit_9866);
|
|
#pragma pop
|
|
|
|
/* 80A58FE0-80A599D8 010140 09F8+00 2/1 0/0 0/0 .text npc_ks_fsdemo__FP12npc_ks_class */
|
|
static void npc_ks_fsdemo(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A599D8-80A59A90 010B38 00B8+00 1/1 0/0 0/0 .text npc_ks_kago__FP12npc_ks_class */
|
|
static void npc_ks_kago(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E374-80A5E378 000478 0004+00 0/0 0/0 0/0 .rodata @9867 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9867 = -37799.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E374, &lit_9867);
|
|
#pragma pop
|
|
|
|
/* 80A5E378-80A5E37C 00047C 0004+00 0/0 0/0 0/0 .rodata @9868 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9868 = 815.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E378, &lit_9868);
|
|
#pragma pop
|
|
|
|
/* 80A5E37C-80A5E380 000480 0004+00 0/0 0/0 0/0 .rodata @9869 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9869 = -22323.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E37C, &lit_9869);
|
|
#pragma pop
|
|
|
|
/* 80A5E380-80A5E384 000484 0004+00 0/0 0/0 0/0 .rodata @9870 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_9870 = 57.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E380, &lit_9870);
|
|
#pragma pop
|
|
|
|
/* 80A5E384-80A5E388 000488 0004+00 0/1 0/0 0/0 .rodata @10197 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10197 = 16.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E384, &lit_10197);
|
|
#pragma pop
|
|
|
|
/* 80A5E388-80A5E38C 00048C 0004+00 0/1 0/0 0/0 .rodata @10198 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10198 = 9.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E388, &lit_10198);
|
|
#pragma pop
|
|
|
|
/* 80A5E38C-80A5E390 000490 0004+00 0/1 0/0 0/0 .rodata @10199 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10199 = 24.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E38C, &lit_10199);
|
|
#pragma pop
|
|
|
|
/* 80A5E390-80A5E394 000494 0004+00 0/2 0/0 0/0 .rodata @10200 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10200 = 11.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E390, &lit_10200);
|
|
#pragma pop
|
|
|
|
/* 80A5E394-80A5E398 000498 0004+00 0/1 0/0 0/0 .rodata @10201 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10201 = 19.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E394, &lit_10201);
|
|
#pragma pop
|
|
|
|
/* 80A5E398-80A5E39C 00049C 0004+00 0/1 0/0 0/0 .rodata @10202 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10202 = 36.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E398, &lit_10202);
|
|
#pragma pop
|
|
|
|
/* 80A5E39C-80A5E3A0 0004A0 0004+00 0/1 0/0 0/0 .rodata @10203 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10203 = 54.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E39C, &lit_10203);
|
|
#pragma pop
|
|
|
|
/* 80A5E3A0-80A5E3A4 0004A4 0004+00 0/1 0/0 0/0 .rodata @10204 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10204 = 47.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3A0, &lit_10204);
|
|
#pragma pop
|
|
|
|
/* 80A5E3A4-80A5E3A8 0004A8 0004+00 0/1 0/0 0/0 .rodata @10205 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10205 = 22.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3A4, &lit_10205);
|
|
#pragma pop
|
|
|
|
/* 80A5E3A8-80A5E3AC 0004AC 0004+00 0/1 0/0 0/0 .rodata @10206 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10206 = 17.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3A8, &lit_10206);
|
|
#pragma pop
|
|
|
|
/* 80A5E3AC-80A5E3B0 0004B0 0004+00 0/1 0/0 0/0 .rodata @10207 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10207 = 18.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3AC, &lit_10207);
|
|
#pragma pop
|
|
|
|
/* 80A5E3B0-80A5E3B4 0004B4 0004+00 0/1 0/0 0/0 .rodata @10208 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10208 = 38.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3B0, &lit_10208);
|
|
#pragma pop
|
|
|
|
/* 80A5E3B4-80A5E3B8 0004B8 0004+00 0/1 0/0 0/0 .rodata @10209 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10209 = 51.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3B4, &lit_10209);
|
|
#pragma pop
|
|
|
|
/* 80A5E3B8-80A5E3BC 0004BC 0004+00 0/1 0/0 0/0 .rodata @10210 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u32 const lit_10210 = 0x3CB020C5;
|
|
COMPILER_STRIP_GATE(0x80A5E3B8, &lit_10210);
|
|
#pragma pop
|
|
|
|
/* 80A5E3BC-80A5E3C0 0004C0 0004+00 0/1 0/0 0/0 .rodata @10211 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10211 = 127.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3BC, &lit_10211);
|
|
#pragma pop
|
|
|
|
/* 80A59A90-80A5A7D8 010BF0 0D48+00 1/1 0/0 0/0 .text anm_se_set__FP12npc_ks_class */
|
|
static void anm_se_set(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E3C0-80A5E3C4 0004C4 0004+00 0/1 0/0 0/0 .rodata @10479 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10479 = -300.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3C0, &lit_10479);
|
|
#pragma pop
|
|
|
|
/* 80A5E3C4-80A5E3C8 0004C8 0004+00 0/1 0/0 0/0 .rodata @10480 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10480 = -90.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3C4, &lit_10480);
|
|
#pragma pop
|
|
|
|
/* 80A5E3C8-80A5E3CC 0004CC 0004+00 0/1 0/0 0/0 .rodata @10481 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10481 = 2000.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3C8, &lit_10481);
|
|
#pragma pop
|
|
|
|
/* 80A5E3CC-80A5E3D0 0004D0 0004+00 0/1 0/0 0/0 .rodata @10482 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10482 = -70.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3CC, &lit_10482);
|
|
#pragma pop
|
|
|
|
/* 80A5E3D0-80A5E3D4 0004D4 0004+00 0/1 0/0 0/0 .rodata @10483 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10483 = 0.75f;
|
|
COMPILER_STRIP_GATE(0x80A5E3D0, &lit_10483);
|
|
#pragma pop
|
|
|
|
/* 80A5A7D8-80A5B544 011938 0D6C+00 1/1 0/0 0/0 .text action__FP12npc_ks_class */
|
|
static void action(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5B544-80A5B614 0126A4 00D0+00 1/1 0/0 0/0 .text s_kago_sub__FPvPv */
|
|
static void s_kago_sub(void* param_0, void* param_1) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E3D4-80A5E3D8 0004D8 0004+00 0/1 0/0 0/0 .rodata @10567 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10567 = 44.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3D4, &lit_10567);
|
|
#pragma pop
|
|
|
|
/* 80A5E3D8-80A5E3DC 0004DC 0004+00 0/1 0/0 0/0 .rodata @10568 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10568 = 144.5f;
|
|
COMPILER_STRIP_GATE(0x80A5E3D8, &lit_10568);
|
|
#pragma pop
|
|
|
|
/* 80A5E3DC-80A5E3E0 0004E0 0004+00 0/1 0/0 0/0 .rodata @10569 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10569 = -30715.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3DC, &lit_10569);
|
|
#pragma pop
|
|
|
|
/* 80A5E3E0-80A5E3E4 0004E4 0004+00 0/1 0/0 0/0 .rodata @10570 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10570 = 338.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3E0, &lit_10570);
|
|
#pragma pop
|
|
|
|
/* 80A5E3E4-80A5E3EC 0004E8 0004+04 0/1 0/0 0/0 .rodata @10571 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10571[1 + 1 /* padding */] = {
|
|
14500.0f,
|
|
/* padding */
|
|
0.0f,
|
|
};
|
|
COMPILER_STRIP_GATE(0x80A5E3E4, &lit_10571);
|
|
#pragma pop
|
|
|
|
/* 80A5E3EC-80A5E3F4 0004F0 0008+00 0/2 0/0 0/0 .rodata @10573 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static u8 const lit_10573[8] = {
|
|
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
|
};
|
|
COMPILER_STRIP_GATE(0x80A5E3EC, &lit_10573);
|
|
#pragma pop
|
|
|
|
/* 80A5B614-80A5B8FC 012774 02E8+00 1/1 0/0 0/0 .text kantera_sub__FP12npc_ks_class */
|
|
static void kantera_sub(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E3F4-80A5E3F8 0004F8 0004+00 0/1 0/0 0/0 .rodata @10878 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10878 = 32768.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3F4, &lit_10878);
|
|
#pragma pop
|
|
|
|
/* 80A5E3F8-80A5E3FC 0004FC 0004+00 0/1 0/0 0/0 .rodata @10879 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10879 = -60.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3F8, &lit_10879);
|
|
#pragma pop
|
|
|
|
/* 80A5E3FC-80A5E400 000500 0004+00 0/1 0/0 0/0 .rodata @10880 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10880 = -0.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E3FC, &lit_10880);
|
|
#pragma pop
|
|
|
|
/* 80A5E400-80A5E404 000504 0004+00 0/1 0/0 0/0 .rodata @10881 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_10881 = -3.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E400, &lit_10881);
|
|
#pragma pop
|
|
|
|
/* 80A5FF48-80A5FF58 000108 000C+04 0/0 0/0 0/0 .bss @7870 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 lit_7870[12];
|
|
#pragma pop
|
|
|
|
// /* 80A5FF54 */
|
|
// static u8 gap_05_00000114_bss;
|
|
|
|
/* 80A5FF58-80A5FF64 000118 000C+00 0/0 0/0 0/0 .bss sc$7869 */
|
|
// static cXyz sc[12];
|
|
|
|
/* 80A5FF64-80A5FF68 000124 0004+00 0/2 0/0 0/0 .bss c_start */
|
|
#pragma push
|
|
#pragma force_active on
|
|
static u8 c_start[4];
|
|
#pragma pop
|
|
|
|
/* 80A5B8FC-80A5C3E4 012A5C 0AE8+00 2/1 0/0 0/0 .text daNpc_Ks_Execute__FP12npc_ks_class
|
|
*/
|
|
static void daNpc_Ks_Execute(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5C3E4-80A5C3EC 013544 0008+00 1/0 0/0 0/0 .text daNpc_Ks_IsDelete__FP12npc_ks_class
|
|
*/
|
|
static bool daNpc_Ks_IsDelete(npc_ks_class* param_0) {
|
|
return true;
|
|
}
|
|
|
|
/* 80A5C3EC-80A5C450 01354C 0064+00 1/0 0/0 0/0 .text daNpc_Ks_Delete__FP12npc_ks_class
|
|
*/
|
|
static void daNpc_Ks_Delete(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5C450-80A5C768 0135B0 0318+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
|
static void useHeapInit(fopAc_ac_c* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5C768-80A5C7B0 0138C8 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
|
// J3DFrameCtrl::~J3DFrameCtrl() {
|
|
extern "C" void __dt__12J3DFrameCtrlFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E404-80A5E408 000508 0004+00 0/1 0/0 0/0 .rodata @11370 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11370 = 4620.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E404, &lit_11370);
|
|
#pragma pop
|
|
|
|
/* 80A5C7B0-80A5D2BC 013910 0B0C+00 2/1 0/0 0/0 .text start_check__FP12npc_ks_class */
|
|
static void start_check(npc_ks_class* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D2BC-80A5D354 01441C 0098+00 1/1 0/0 0/0 .text s_check_sub__FPvPv */
|
|
static void s_check_sub(void* param_0, void* param_1) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80A5E408-80A5E40C 00050C 0004+00 0/0 0/0 0/0 .rodata @11371 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11371 = 6854.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E408, &lit_11371);
|
|
#pragma pop
|
|
|
|
/* 80A5E40C-80A5E410 000510 0004+00 0/0 0/0 0/0 .rodata @11372 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11372 = 3458.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E40C, &lit_11372);
|
|
#pragma pop
|
|
|
|
/* 80A5E410-80A5E414 000514 0004+00 0/0 0/0 0/0 .rodata @11373 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11373 = 440.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E410, &lit_11373);
|
|
#pragma pop
|
|
|
|
/* 80A5E414-80A5E418 000518 0004+00 0/0 0/0 0/0 .rodata @11374 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11374 = 6836.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E414, &lit_11374);
|
|
#pragma pop
|
|
|
|
/* 80A5E418-80A5E41C 00051C 0004+00 0/0 0/0 0/0 .rodata @11375 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11375 = 3585.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E418, &lit_11375);
|
|
#pragma pop
|
|
|
|
/* 80A5E41C-80A5E420 000520 0004+00 0/0 0/0 0/0 .rodata @11376 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11376 = 7025.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E41C, &lit_11376);
|
|
#pragma pop
|
|
|
|
/* 80A5E420-80A5E424 000524 0004+00 0/0 0/0 0/0 .rodata @11377 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11377 = 3355.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E420, &lit_11377);
|
|
#pragma pop
|
|
|
|
/* 80A5E424-80A5E428 000528 0004+00 0/0 0/0 0/0 .rodata @11378 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11378 = 4500.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E424, &lit_11378);
|
|
#pragma pop
|
|
|
|
/* 80A5E428-80A5E42C 00052C 0004+00 0/1 0/0 0/0 .rodata @11581 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11581 = -5370.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E428, &lit_11581);
|
|
#pragma pop
|
|
|
|
/* 80A5E42C-80A5E430 000530 0004+00 0/1 0/0 0/0 .rodata @11582 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11582 = 3950.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E42C, &lit_11582);
|
|
#pragma pop
|
|
|
|
/* 80A5E430-80A5E434 000534 0004+00 0/1 0/0 0/0 .rodata @11583 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11583 = -2330.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E430, &lit_11583);
|
|
#pragma pop
|
|
|
|
/* 80A5E434-80A5E438 000538 0004+00 0/1 0/0 0/0 .rodata @11584 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_RODATA static f32 const lit_11584 = 65536.0f;
|
|
COMPILER_STRIP_GATE(0x80A5E434, &lit_11584);
|
|
#pragma pop
|
|
|
|
/* 80A5E438-80A5E438 00053C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_80A5E44A = "Npc_ks";
|
|
SECTION_DEAD static char const* const stringBase_80A5E451 = "D_MN05";
|
|
#pragma pop
|
|
|
|
/* 80A5D354-80A5D87C 0144B4 0528+00 1/0 0/0 0/0 .text daNpc_Ks_Create__FP10fopAc_ac_c */
|
|
static void daNpc_Ks_Create(fopAc_ac_c* param_0) {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D87C-80A5D8C4 0149DC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
|
// cM3dGCyl::~cM3dGCyl() {
|
|
extern "C" void __dt__8cM3dGCylFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D8C4-80A5D90C 014A24 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
|
// cM3dGAab::~cM3dGAab() {
|
|
extern "C" void __dt__8cM3dGAabFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D90C-80A5D968 014A6C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
|
// dCcD_GStts::~dCcD_GStts() {
|
|
extern "C" void __dt__10dCcD_GSttsFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D968-80A5D9D8 014AC8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
|
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
|
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5D9D8-80A5DA48 014B38 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
|
|
// dBgS_AcchCir::~dBgS_AcchCir() {
|
|
extern "C" void __dt__12dBgS_AcchCirFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
/* 80A5DA48-80A5DA90 014BA8 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
|
// cCcD_GStts::~cCcD_GStts() {
|
|
extern "C" void __dt__10cCcD_GSttsFv() {
|
|
// NONMATCHING
|
|
}
|
|
|
|
AUDIO_INSTANCES;
|
|
|
|
/* 80A5E438-80A5E438 00053C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
|
|
/* 80A5FD74-80A5FD94 -00001 0020+00 1/0 0/0 0/0 .data l_daNpc_Ks_Method */
|
|
static actor_method_class l_daNpc_Ks_Method = {
|
|
(process_method_func)daNpc_Ks_Create,
|
|
(process_method_func)daNpc_Ks_Delete,
|
|
(process_method_func)daNpc_Ks_Execute,
|
|
(process_method_func)daNpc_Ks_IsDelete,
|
|
(process_method_func)daNpc_Ks_Draw,
|
|
};
|
|
|
|
/* 80A5FD94-80A5FDC4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KS */
|
|
extern actor_process_profile_definition g_profile_NPC_KS = {
|
|
fpcLy_CURRENT_e, // mLayerID
|
|
3, // mListID
|
|
fpcPi_CURRENT_e, // mListPrio
|
|
PROC_NPC_KS, // mProcName
|
|
&g_fpcLf_Method.base, // sub_method
|
|
sizeof(npc_ks_class), // mSize
|
|
0, // mSizeOther
|
|
0, // mParameters
|
|
&g_fopAc_Method.base, // sub_method
|
|
701, // mPriority
|
|
&l_daNpc_Ks_Method, // sub_method
|
|
0x00044100, // mStatus
|
|
fopAc_ACTOR_e, // mActorType
|
|
fopAc_CULLBOX_CUSTOM_e, // cullType
|
|
};
|