mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-05 01:19:11 -04:00
96347ab502
* Add angle conversion constants and macros * Replace angle literals with hex instead of decimal
7641 lines
323 KiB
C++
7641 lines
323 KiB
C++
/**
|
|
* d_meter.cpp
|
|
* HUD (hearts, magic meter, button icons, etc.)
|
|
*/
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
#include "d/d_meter.h"
|
|
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
|
#include "JSystem/J2DGraph/J2DScreen.h"
|
|
#include "JSystem/JKernel/JKRExpHeap.h" // IWYU pragma: keep
|
|
#include "d/d_camera.h"
|
|
#include "d/d_file_error.h"
|
|
#include "d/d_kankyo_wether.h"
|
|
#include "d/actor/d_a_arrow.h"
|
|
#include "d/actor/d_a_npc_cb1.h"
|
|
#include "d/actor/d_a_npc_ji1.h"
|
|
#include "d/actor/d_a_npc_kamome.h"
|
|
#include "d/actor/d_a_npc_md.h"
|
|
#include "d/actor/d_a_npc_so.h"
|
|
#include "d/actor/d_a_player.h"
|
|
#include "d/actor/d_a_player_main.h"
|
|
#include "d/d_s_play.h"
|
|
#include "f_op/f_op_overlap_mng.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_drawlist.h"
|
|
#include "d/d_metronome.h"
|
|
#include "d/d_timer.h"
|
|
#include "m_Do/m_Do_lib.h"
|
|
#include "stdio.h"
|
|
|
|
dMeter_info_c dMeter_Info;
|
|
fopMsgM_pane_class item_parts;
|
|
dMeter_map_HIO_c g_meter_mapHIO;
|
|
dMeter_HIO_c g_meterHIO;
|
|
dMeter_menuHIO_c g_menuHIO;
|
|
dMeter_msg_HIO_c g_msgHIO;
|
|
dMeter_message_HIO_c g_messageHIO;
|
|
dMetronome_c* dMn_c;
|
|
J2DScreen* sMainParts1;
|
|
J2DScreen* sMainParts2;
|
|
J2DScreen* sMainParts3;
|
|
J2DScreen* sScrTimer1;
|
|
J2DScreen* sScrTimer2;
|
|
J2DScreen* sChoiceRoad;
|
|
J2DPicture* moveItemPane;
|
|
u8 mapAlpha;
|
|
u8 menu_status;
|
|
u8 menu_status_old;
|
|
u8 dMenu_pause;
|
|
int dMenu_frame_timer;
|
|
u8 dMenu_menuButton;
|
|
bool subWinFlag;
|
|
bool dMeter_auctionFlag;
|
|
u8 dMeter_itemMoveFlag;
|
|
u8 dMeter_btn_chk;
|
|
u8 dMeter_itemNum;
|
|
s16 dMeter_itemTimer;
|
|
f32 texRateX;
|
|
f32 texRateY;
|
|
f32 texScaleX;
|
|
f32 texScaleY;
|
|
u8 dMenu_menuFlag;
|
|
u8 dMenu_baitNum[8];
|
|
u8 dMeter_place_name;
|
|
u8 dMeter_itemMode;
|
|
u8 dMeter_collectMode;
|
|
fpc_ProcID dMeter_windID = fpcM_ERROR_PROCESS_ID_e;
|
|
u8 dMeter_windStatus;
|
|
u8 rupy_soundSetFlag;
|
|
u8 rupy_soundOnFlag;
|
|
mapCtrlDisp_c dMeter_mMapCtrlDisp;
|
|
dDlst_2DMETER1_c meter1;
|
|
dDlst_2DMETER2_c meter2;
|
|
dDlst_2Dm_c tekari;
|
|
dDlst_2Dm_c clock[3];
|
|
|
|
static void dummy(f32* m, u32 p2, s32 p3) {
|
|
OSReport("cmap_tri.bti");
|
|
OSReport("cmap_treasure.bti");
|
|
OSReport("cmap_tingle.bti");
|
|
OSReport("cmap_phantomship.bti");
|
|
OSReport("cmap_hint.bti");
|
|
OSReport("f_item_tri.bti");
|
|
#if VERSION == VERSION_DEMO
|
|
OSReport("get_rupy.bti");
|
|
OSReport("heart_up_02.bti");
|
|
#else
|
|
OSReport("f_get_rupy.bti");
|
|
OSReport("f_heart_up_02.bti");
|
|
#endif
|
|
OSReport("f_korog_kare.bti");
|
|
OSReport("f_korog_saki.bti");
|
|
m[0] = 0.8f;
|
|
m[1] = 0.0f;
|
|
m[2] = 1.2f;
|
|
m[3] = 0.1f;
|
|
m[4] = 1.0f;
|
|
m[5] = 1.1f;
|
|
m[6] = 255.0f;
|
|
m[7] = -1.0f;
|
|
m[8] = 452.0f;
|
|
m[9] = p2;
|
|
m[10] = p3;
|
|
}
|
|
|
|
static const char* arrowTexImage[] = {
|
|
"arrow_00.bti",
|
|
"arrow_01.bti",
|
|
"arrow_02.bti",
|
|
"arrow_03.bti",
|
|
};
|
|
|
|
/* 801EEFDC-801EF360 .text __ct__12dMeter_HIO_cFv */
|
|
dMeter_HIO_c::dMeter_HIO_c() {
|
|
field_0x6 = 10;
|
|
field_0x62 = 0;
|
|
field_0x63 = 0;
|
|
field_0xc = 1.0f;
|
|
field_0x10 = 1.4f;
|
|
field_0x14 = 0.0f;
|
|
field_0x18 = -29.0f;
|
|
field_0x1c = 1.0f;
|
|
field_0x36 = 0x16;
|
|
field_0x3c = 0.65f;
|
|
field_0x38 = 0;
|
|
field_0x2e = 0;
|
|
field_0x30 = 0;
|
|
field_0x32 = 0;
|
|
field_0x34 = 0;
|
|
field_0x2c = 0xff;
|
|
field_0x20 = 1.5f;
|
|
field_0x24 = 150.0f;
|
|
field_0x2d = 0x8c;
|
|
field_0x40 = 0x5a;
|
|
field_0x42 = 100;
|
|
field_0x44 = 100;
|
|
field_0x46 = 0x5a;
|
|
field_0x50 = 7;
|
|
field_0x52 = 0xfff4;
|
|
field_0x48 = 1.8f;
|
|
field_0x4c = 12.0f;
|
|
field_0x54 = 0;
|
|
field_0x56 = 0xffa8;
|
|
field_0x58 = 2.3f;
|
|
field_0x5c = 12.0f;
|
|
field_0x60 = 0x96;
|
|
field_0x61 = 100;
|
|
field_0x64 = 0;
|
|
field_0x66 = 0;
|
|
field_0x68 = 0;
|
|
field_0x6a = 0;
|
|
field_0x88 = 0xf;
|
|
field_0x8a = 5;
|
|
field_0x8c = 5;
|
|
field_0x8e = 5;
|
|
field_0x90 = 0x14;
|
|
field_0x92 = 0xc;
|
|
field_0x94 = 3;
|
|
field_0x96 = 3;
|
|
field_0x98 = 3;
|
|
field_0x9a = 0;
|
|
field_0x120 = 0x8c;
|
|
field_0x121 = 200;
|
|
field_0x122 = 0x96;
|
|
field_0x126 = 10;
|
|
field_0x128 = 6;
|
|
field_0x12a = 3;
|
|
field_0x12c = 3;
|
|
field_0x12e = 2;
|
|
field_0x130 = 0x14;
|
|
field_0x132 = 0x27;
|
|
field_0x7e = 0x14;
|
|
field_0x136 = 4;
|
|
field_0x138 = 10;
|
|
field_0x13a = 0;
|
|
field_0x13c = 10;
|
|
field_0x142 = 0xb4;
|
|
field_0x143 = 0;
|
|
field_0x144 = 0;
|
|
field_0x145 = 0xff;
|
|
field_0x146 = 0;
|
|
field_0x147 = 0;
|
|
field_0x148 = 0;
|
|
field_0x149 = 0;
|
|
field_0x123 = 1;
|
|
field_0x134 = 3;
|
|
field_0x13e = 0;
|
|
field_0x14a = 0xff;
|
|
field_0x14b = 0x32;
|
|
field_0x14c = 0x32;
|
|
field_0x14e = 10;
|
|
field_0x150 = 0x14;
|
|
field_0x152 = 4;
|
|
field_0x154 = 0x32;
|
|
field_0x28 = 2.1f;
|
|
field_0x124 = 5;
|
|
field_0x140 = 0;
|
|
field_0xa0 = 0;
|
|
field_0xa8 = 0;
|
|
field_0xa2 = 0x3c;
|
|
field_0xaa = 0xffc4;
|
|
field_0xa4 = 0;
|
|
field_0xac = 0;
|
|
field_0xa6 = 0;
|
|
field_0xae = 0;
|
|
field_0xb0 = 0x19;
|
|
field_0xb8 = 0xffe2;
|
|
field_0xb2 = 0x23;
|
|
field_0xba = 0xffea;
|
|
field_0xb4 = 0xffdf;
|
|
field_0xbc = 0xfffb;
|
|
field_0xb6 = 0xfffa;
|
|
field_0xbe = 0;
|
|
field_0xc0 = 0;
|
|
field_0xc8 = 0xffec;
|
|
field_0xc2 = 0;
|
|
field_0xca = 0xffec;
|
|
field_0xc4 = 0;
|
|
field_0xcc = 0xffec;
|
|
field_0xc6 = 0;
|
|
field_0xce = 0;
|
|
field_0xd0 = 0x28;
|
|
field_0xd8 = 0xffc4;
|
|
field_0xd2 = 0x28;
|
|
field_0xda = 0xffc4;
|
|
field_0xd4 = 0;
|
|
field_0xdc = 0;
|
|
field_0xd6 = 0;
|
|
field_0xde = 0;
|
|
field_0xe0 = 0x19;
|
|
field_0xe8 = 0xffe2;
|
|
field_0xe2 = 0x23;
|
|
field_0xea = 0xffea;
|
|
field_0xe4 = 0;
|
|
field_0xec = 0xffc4;
|
|
field_0xe6 = 0xfffa;
|
|
field_0xee = 0;
|
|
field_0xf0 = 0;
|
|
field_0xf8 = 0;
|
|
field_0xf2 = 0;
|
|
field_0xfa = 0;
|
|
field_0xf4 = 0;
|
|
field_0xfc = 0;
|
|
field_0xf6 = 0;
|
|
field_0xfe = 0;
|
|
field_0x100 = 0;
|
|
field_0x108 = 0xffc4;
|
|
field_0x102 = 0;
|
|
field_0x10a = 0xffc4;
|
|
field_0x104 = 0x32;
|
|
field_0x10c = 0xffb8;
|
|
field_0x106 = 0x32;
|
|
field_0x10e = 0xffaf;
|
|
field_0x110 = 0;
|
|
field_0x118 = 0xffeb;
|
|
field_0x112 = 0x11;
|
|
field_0x11a = 0xfff4;
|
|
field_0x114 = 0xffe2;
|
|
field_0x11c = 0xfff5;
|
|
field_0x116 = 0xff9e;
|
|
field_0x11e = 7;
|
|
field_0x9c = 0;
|
|
field_0x9e = 0;
|
|
field_0x6c[0] = 0xffea;
|
|
field_0x72[0] = 0xffd5;
|
|
field_0x78[0] = 0x8c;
|
|
field_0x6c[1] = 0xffdd;
|
|
field_0x72[1] = 0xfffd;
|
|
field_0x78[1] = 0x82;
|
|
field_0x6c[2] = 0xfffa;
|
|
field_0x72[2] = 0xfff3;
|
|
field_0x78[2] = 0x8c;
|
|
}
|
|
|
|
/* 801EF360-801EF57C .text __ct__16dMeter_menuHIO_cFv */
|
|
dMeter_menuHIO_c::dMeter_menuHIO_c() {
|
|
field_0x8 = 1.4f;
|
|
field_0xbe = 0;
|
|
field_0xc = 18.0f;
|
|
field_0x10 = 28.0f;
|
|
field_0x7e = 3;
|
|
field_0x80 = 3;
|
|
field_0xc0 = 1;
|
|
field_0x7c = 0;
|
|
field_0xc1 = 0;
|
|
field_0xc2 = 10;
|
|
field_0xc3 = 4;
|
|
field_0xc4 = 0;
|
|
field_0x3c = 0.0f;
|
|
field_0x40 = -50.0f;
|
|
field_0x44 = 1100.0f;
|
|
field_0x70 = 0xff;
|
|
field_0x71 = 0xff;
|
|
field_0x72 = 0xff;
|
|
field_0x73 = 0xff;
|
|
field_0x6c = 0x32;
|
|
field_0x6d = 0x32;
|
|
field_0x6e = 0x32;
|
|
field_0x6f = 0xff;
|
|
field_0x48 = 0.0f;
|
|
field_0x4c = 0.0f;
|
|
field_0x50 = -1200.0f;
|
|
field_0x74 = 0xff;
|
|
field_0x75 = 0xff;
|
|
field_0x76 = 0xff;
|
|
field_0x77 = 0xff;
|
|
field_0x54 = -1500.0f;
|
|
field_0x58 = 1000.0f;
|
|
field_0x5c = 500.0f;
|
|
field_0x60 = 1.0f;
|
|
field_0x64 = -1.0f;
|
|
field_0x68 = -1.0f;
|
|
field_0x78 = 200;
|
|
field_0x79 = 200;
|
|
field_0x7a = 200;
|
|
field_0x7b = 0xff;
|
|
field_0x18 = 0.25f;
|
|
field_0xbf = 0;
|
|
field_0x1c = 2.5f;
|
|
field_0xc5 = 2;
|
|
field_0x82 = 8;
|
|
field_0x84 = 5;
|
|
field_0xc6 = 0;
|
|
field_0xc7 = 1;
|
|
field_0x20 = 0.5f;
|
|
field_0xc8 = 9;
|
|
field_0xc9 = 0;
|
|
field_0xca = 0;
|
|
field_0x28 = 0xffec;
|
|
field_0x36 = 7;
|
|
field_0x32 = 8;
|
|
field_0x34 = 5;
|
|
field_0x38 = 0x1a;
|
|
field_0x3a = 0xfffd;
|
|
field_0x88 = 3;
|
|
field_0x8a = 0;
|
|
field_0x14 = 1.3f;
|
|
field_0x8c = 0xff38;
|
|
field_0xb4 = 6;
|
|
field_0x90 = 3;
|
|
field_0x92 = 7;
|
|
field_0x94 = 1.0f;
|
|
field_0x98 = 0xff;
|
|
field_0x99 = 0xff;
|
|
field_0x9a = 0;
|
|
field_0x9a = 0;
|
|
field_0xa0 = 1.0f;
|
|
field_0xb6 = 0x46;
|
|
field_0xba = 5;
|
|
field_0xbc = 3;
|
|
field_0x24 = 1.4f;
|
|
field_0xa4 = 6;
|
|
field_0xa6 = 2;
|
|
field_0xa8 = 2;
|
|
field_0xaa = 2;
|
|
field_0xac = 2;
|
|
field_0xae = 0x1e;
|
|
field_0xb0 = 0x3c;
|
|
field_0xb2 = 0;
|
|
field_0x8e = 0x15e;
|
|
field_0xb8 = 0x96;
|
|
field_0x2a = 0x10;
|
|
field_0x2c = 0x18;
|
|
field_0x2e = 0x17;
|
|
field_0x30 = 0;
|
|
}
|
|
|
|
/* 801EF57C-801EF75C .text __ct__16dMeter_msg_HIO_cFv */
|
|
dMeter_msg_HIO_c::dMeter_msg_HIO_c() {
|
|
field_0x5.r = 0x1e;
|
|
field_0x5.g = 0x1e;
|
|
field_0x5.b = 0x1e;
|
|
field_0x5.a = 0xd7;
|
|
field_0x9.r = 0x1e;
|
|
field_0x9.g = 0x1e;
|
|
field_0x9.b = 0x4b;
|
|
field_0x9.a = 0;
|
|
field_0x5a = 0;
|
|
field_0x5c = 0;
|
|
field_0x5e = 0x1e;
|
|
field_0x66 = 0;
|
|
field_0x68 = 0xf;
|
|
field_0xd = 0x1e;
|
|
field_0xe = 0x1e;
|
|
field_0xf = 0x1e;
|
|
field_0x10 = 0xdc;
|
|
field_0x11 = 0x1e;
|
|
field_0x12 = 0x1e;
|
|
field_0x13 = 0xb4;
|
|
field_0x14 = 0;
|
|
field_0x15 = 0;
|
|
field_0x16 = 0xff;
|
|
field_0x17 = 0;
|
|
field_0x18 = 0xff;
|
|
field_0x19 = 0x78;
|
|
field_0x1a = 0x78;
|
|
field_0x1b = 0xff;
|
|
field_0x1c = 0xff;
|
|
field_0x1d = 0xff;
|
|
field_0x1e = 0xff;
|
|
field_0x1f = 0x3c;
|
|
field_0x20 = 0xff;
|
|
field_0x21 = 0;
|
|
field_0x22 = 0xff;
|
|
field_0x23 = 0xff;
|
|
field_0x24 = 0xff;
|
|
field_0x25 = 0xff;
|
|
field_0x26 = 0;
|
|
field_0x27 = 0xff;
|
|
field_0x28 = 0xff;
|
|
field_0x6a = 0;
|
|
field_0x72 = 0;
|
|
field_0x6c = 0;
|
|
field_0x83 = 0;
|
|
field_0x84 = 1;
|
|
field_0x85 = 0;
|
|
field_0x86 = 0;
|
|
field_0x87 = 10;
|
|
field_0x88 = 0;
|
|
field_0x89 = 0;
|
|
field_0x8a = 0;
|
|
field_0x64 = 0;
|
|
field_0x82 = 2;
|
|
field_0x58 = 0x1d;
|
|
field_0x70 = DEMO_SELECT(0x19, 0x17);
|
|
field_0x62 = 0;
|
|
field_0x60 = 0xd;
|
|
field_0x6e = 0xf0;
|
|
field_0x50 = 0.6f;
|
|
field_0x54 = 1.1f;
|
|
field_0x4a = 2;
|
|
field_0x4c = 4;
|
|
field_0x7e = 10;
|
|
field_0x80 = 0xb4;
|
|
field_0x74 = 0x80;
|
|
field_0x7f = 0xaa;
|
|
field_0x81 = 0x46;
|
|
field_0x76 = 10;
|
|
field_0x78 = 0;
|
|
field_0x7a = 0;
|
|
field_0x7c = 0x46;
|
|
field_0x44 = 5;
|
|
field_0x46 = 3;
|
|
field_0x48 = 4;
|
|
field_0x38 = -40.0f;
|
|
field_0x3c = 0.96f;
|
|
field_0x40 = 0.5f;
|
|
field_0x29 = 0xff;
|
|
field_0x2a = 0x50;
|
|
field_0x2b = 0x50;
|
|
field_0x2c = 0x96;
|
|
field_0x2d = 0xff;
|
|
field_0x2e = 0x96;
|
|
field_0x2f = 0x96;
|
|
field_0x30 = 0xff;
|
|
}
|
|
|
|
/* 801EF75C-801EF924 .text __ct__20dMeter_message_HIO_cFv */
|
|
dMeter_message_HIO_c::dMeter_message_HIO_c() {
|
|
field_0x5.r = 0;
|
|
field_0x5.g = 0;
|
|
field_0x5.b = 0;
|
|
field_0x5.a = 0xff;
|
|
|
|
field_0x9.r = 0xff;
|
|
field_0x9.g = 0xff;
|
|
field_0x9.b = 0xff;
|
|
field_0x9.a = 0xff;
|
|
|
|
field_0xd.r = 0xff;
|
|
field_0xd.g = 0xff;
|
|
field_0xd.b = 0xff;
|
|
field_0xd.a = 0;
|
|
|
|
field_0x11.r = 0xff;
|
|
field_0x11.g = 0xff;
|
|
field_0x11.b = 0xff;
|
|
field_0x11.a = 0xff;
|
|
|
|
field_0x15.r = 0xff;
|
|
field_0x15.g = 0xff;
|
|
field_0x15.b = 0xff;
|
|
field_0x15.a = 0xff;
|
|
|
|
field_0x19.r = 0xff;
|
|
field_0x19.g = 0xff;
|
|
field_0x19.b = 0xff;
|
|
field_0x19.a = 0;
|
|
|
|
field_0x1d.r = 0;
|
|
field_0x1d.g = 0;
|
|
field_0x1d.b = 0;
|
|
field_0x1d.a = 0xff;
|
|
|
|
field_0x21.r = 0xff;
|
|
field_0x21.g = 0xff;
|
|
field_0x21.b = 0xff;
|
|
field_0x21.a = 0xff;
|
|
|
|
field_0x25.r = 0xff;
|
|
field_0x25.g = 0xff;
|
|
field_0x25.b = 0xff;
|
|
field_0x25.a = 0;
|
|
|
|
field_0x29 = 0x80;
|
|
field_0x2a = 0xff;
|
|
field_0x2b = 0xff;
|
|
field_0x2c = 0xff;
|
|
field_0x2d = 0xff;
|
|
field_0x2e = 0xb4;
|
|
field_0x2f = 0xa0;
|
|
field_0x30 = 0x4b;
|
|
field_0x31 = 0;
|
|
field_0x32 = 0x1b;
|
|
field_0x34 = 0xfffe;
|
|
field_0x36 = 0x2a;
|
|
field_0x38 = 0xf;
|
|
field_0x3a = 1;
|
|
field_0x3b = 10;
|
|
field_0x3c = 0x16;
|
|
field_0x40 = 0.7f;
|
|
field_0x44 = 0;
|
|
field_0x46 = 1;
|
|
field_0x48 = 0;
|
|
field_0x4a = 0;
|
|
field_0x4b = 1;
|
|
field_0x4c = 0xff;
|
|
field_0x4d = 0xff;
|
|
field_0x4e = 0xff;
|
|
field_0x4f = 0xff;
|
|
field_0x50 = 0;
|
|
field_0x51 = 0;
|
|
field_0x52 = 0;
|
|
field_0x53 = 0;
|
|
field_0x54 = 0;
|
|
field_0x56 = 0;
|
|
field_0x58 = 0;
|
|
field_0x5a = 0;
|
|
field_0x5b = 0xff;
|
|
field_0x5c = 0;
|
|
field_0x60 = 0;
|
|
field_0x66 = 0;
|
|
field_0x6c = 1;
|
|
field_0x72 = 1;
|
|
field_0x5d = 0;
|
|
field_0x62 = 0;
|
|
field_0x68 = 0;
|
|
field_0x6e = 1;
|
|
field_0x74 = 1;
|
|
field_0x5e = 0;
|
|
field_0x64 = 0;
|
|
field_0x6a = 0;
|
|
field_0x70 = 1;
|
|
field_0x76 = 1;
|
|
field_0x78 = 0;
|
|
field_0x7a = 4;
|
|
field_0x7c = 4;
|
|
field_0x7e = 2;
|
|
field_0x80 = 600;
|
|
field_0x82 = 0x18c;
|
|
}
|
|
|
|
/* 801EF924-801EF938 .text dMeter_mtrShow__Fv */
|
|
void dMeter_mtrShow() {
|
|
dComIfGp_2dShowOn();
|
|
}
|
|
|
|
/* 801EF938-801EF94C .text dMeter_mtrHide__Fv */
|
|
void dMeter_mtrHide() {
|
|
dComIfGp_2dShowOff();
|
|
}
|
|
|
|
/* 801EF94C-801EF954 .text dMenu_setMenuStatus__FUc */
|
|
void dMenu_setMenuStatus(u8 param_1) {
|
|
menu_status = param_1;
|
|
}
|
|
|
|
/* 801EF954-801EF95C .text dMenu_setMenuStatusOld__FUc */
|
|
void dMenu_setMenuStatusOld(u8 param_1) {
|
|
menu_status_old = param_1;
|
|
}
|
|
|
|
/* 801EF95C-801EF964 .text dMenu_getMenuStatus__Fv */
|
|
u8 dMenu_getMenuStatus() {
|
|
return menu_status;
|
|
}
|
|
|
|
/* 801EF964-801EF96C .text dMenu_getCollectMode__Fv */
|
|
u8 dMenu_getCollectMode() {
|
|
return dMeter_collectMode;
|
|
}
|
|
|
|
/* 801EF96C-801EF974 .text dMenu_setCollectMode__FUc */
|
|
void dMenu_setCollectMode(u8 param_1) {
|
|
dMeter_collectMode = param_1;
|
|
}
|
|
|
|
/* 801EF974-801EF97C .text dMenu_getItemMode__Fv */
|
|
u8 dMenu_getItemMode() {
|
|
return dMeter_itemMode;
|
|
}
|
|
|
|
/* 801EF97C-801EF984 .text dMenu_setItemMode__FUc */
|
|
void dMenu_setItemMode(u8 param_1) {
|
|
dMeter_itemMode = param_1;
|
|
}
|
|
|
|
/* 801EF984-801EF98C .text dMeter_subWinFlag__Fv */
|
|
bool dMeter_subWinFlag() {
|
|
return subWinFlag;
|
|
}
|
|
|
|
/* 801EF98C-801EF998 .text dMeter_subWinFlagOn__Fv */
|
|
void dMeter_subWinFlagOn() {
|
|
subWinFlag = true;
|
|
}
|
|
|
|
/* 801EF998-801EF9A4 .text dMeter_subWinFlagOff__Fv */
|
|
void dMeter_subWinFlagOff() {
|
|
subWinFlag = false;
|
|
}
|
|
|
|
/* 801EF9A4-801EF9AC .text dMeter_isAuctionFlag__Fv */
|
|
bool dMeter_isAuctionFlag() {
|
|
return dMeter_auctionFlag;
|
|
}
|
|
|
|
/* 801EF9AC-801EF9B8 .text dMeter_onAuctionFlag__Fv */
|
|
void dMeter_onAuctionFlag() {
|
|
dMeter_auctionFlag = true;
|
|
}
|
|
|
|
/* 801EF9B8-801EF9C4 .text dMeter_offAuctionFlag__Fv */
|
|
void dMeter_offAuctionFlag() {
|
|
dMeter_auctionFlag = false;
|
|
}
|
|
|
|
/* 801EF9C4-801EFA38 .text dMeter_itemMoveSet__FP18fopMsgM_pane_classUcUc */
|
|
void dMeter_itemMoveSet(fopMsgM_pane_class* pane, u8 btn, u8 item) {
|
|
dMeter_itemMoveFlag = 1;
|
|
dMeter_btn_chk = btn;
|
|
dMeter_itemNum = item;
|
|
item_parts.mPosTopLeftOrig = pane->mPosTopLeft;
|
|
item_parts.mPosTopLeft = item_parts.mPosTopLeftOrig;
|
|
item_parts.mPosCenterOrig = pane->mPosCenter;
|
|
item_parts.mPosCenter = item_parts.mPosCenterOrig;
|
|
item_parts.mSizeOrig = pane->mSizeOrig;
|
|
item_parts.mSize = pane->mSize;
|
|
dMeter_itemTimer = 0;
|
|
}
|
|
|
|
/* 801EFA38-801EFA40 .text dMeter_itemMoveFlagCheck__Fv */
|
|
u8 dMeter_itemMoveFlagCheck() {
|
|
return dMeter_itemMoveFlag;
|
|
}
|
|
|
|
/* 801EFA40-801EFA48 .text dMenu_flag__Fv */
|
|
u8 dMenu_flag() {
|
|
return dMenu_pause;
|
|
}
|
|
|
|
/* 801EFA48-801EFA50 .text dMenu_flagSet__FUc */
|
|
void dMenu_flagSet(u8 param_1) {
|
|
dMenu_pause = param_1;
|
|
}
|
|
|
|
/* 801EFA50-801EFA58 .text dMenu_timer__Fv */
|
|
int dMenu_timer() {
|
|
return dMenu_frame_timer;
|
|
}
|
|
|
|
/* 801EFA58-801EFA60 .text dMenu_getPushMenuButton__Fv */
|
|
u8 dMenu_getPushMenuButton() {
|
|
return dMenu_menuButton;
|
|
}
|
|
|
|
/* 801EFA60-801EFA68 .text dMenu_setPushMenuButton__FUc */
|
|
void dMenu_setPushMenuButton(u8 param_1) {
|
|
dMenu_menuButton = param_1;
|
|
}
|
|
|
|
/* 801EFA68-801EFA78 .text dMeter_PaneHide__FP18fopMsgM_pane_class */
|
|
void dMeter_PaneHide(fopMsgM_pane_class* pane) {
|
|
pane->pane->hide();
|
|
}
|
|
|
|
/* 801EFA78-801EFA90 .text dMeter_isBit8__FPUcUc */
|
|
BOOL dMeter_isBit8(u8* flag, u8 bit) {
|
|
return (*flag & bit) ? TRUE : FALSE;
|
|
}
|
|
|
|
/* 801EFA90-801EFAA4 .text dMeter_onBit8__FPUcUc */
|
|
void dMeter_onBit8(u8* flag, u8 bit) {
|
|
*flag |= bit & 0xFF;
|
|
}
|
|
|
|
/* 801EFAA4-801EFAB8 .text dMeter_offBit8__FPUcUc */
|
|
void dMeter_offBit8(u8* flag, u8 bit) {
|
|
*flag &= ~(bit & 0xFF);
|
|
}
|
|
|
|
/* 801EFAB8-801EFAC8 .text dMeter_PaneShow__FP18fopMsgM_pane_class */
|
|
void dMeter_PaneShow(fopMsgM_pane_class* pane) {
|
|
pane->pane->show();
|
|
}
|
|
|
|
/* 801EFAC8-801EFC40 .text dMeter_alphaControl__FP15sub_meter_class */
|
|
void dMeter_alphaControl(sub_meter_class* i_Meter) {
|
|
if (!dComIfGp_2dShowCheck()) {
|
|
if (i_Meter->field_0x2f6c > 0.0f) {
|
|
i_Meter->field_0x2f6c = fopMsgM_valueIncrease(g_meterHIO.field_0x6, (int)i_Meter->field_0x2fd8, 0);
|
|
i_Meter->field_0x2fd8--;
|
|
} else {
|
|
i_Meter->field_0x2f6c = 0.0f;
|
|
i_Meter->field_0x2fd8 = 0;
|
|
}
|
|
} else if (dMenu_flag()) {
|
|
if (dMenu_timer() <= 5) {
|
|
f32 dVar3 = fopMsgM_valueIncrease(5, dMenu_timer(), 0);
|
|
if (dMenu_getMenuStatus() != 3) {
|
|
dVar3 = ((1.0f - dVar3) * 0.5f + 0.5f);
|
|
}
|
|
if (i_Meter->field_0x2f6c > dVar3) {
|
|
i_Meter->field_0x2f6c = dVar3;
|
|
}
|
|
} else if (dMenu_getMenuStatus() == 3) {
|
|
i_Meter->field_0x2f6c = 0.0f;
|
|
} else {
|
|
i_Meter->field_0x2f6c = 0.5f;
|
|
}
|
|
} else if (i_Meter->field_0x2f6c < 1.0f) {
|
|
i_Meter->field_0x2f6c = fopMsgM_valueIncrease(g_meterHIO.field_0x6, (int)i_Meter->field_0x2fd8, 0);
|
|
i_Meter->field_0x2fd8++;
|
|
} else {
|
|
i_Meter->field_0x2f6c = 1.0f;
|
|
i_Meter->field_0x2fd8 = g_meterHIO.field_0x6;
|
|
}
|
|
}
|
|
|
|
/* 801EFC40-801F01C0 .text dMeter_statusCheck__FP15sub_meter_class */
|
|
void dMeter_statusCheck(sub_meter_class* i_Meter) {
|
|
i_Meter->mStatusFlags = 0;
|
|
if (!dComIfGp_2dShowCheck() || (dCam_getBody()->chkFlag(0x2000000))) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK4000_e;
|
|
} else if ((dMeter_isAuctionFlag() && dComIfGp_getMesgStatus() == 0) ||
|
|
(dComIfGs_isTmpBit(dSv_event_tmp_flag_c::UNK_0408) && dComIfGp_getMesgStatus() == 0) ||
|
|
dComIfGp_evmng_startCheck("PUZZLE_GAME") ||
|
|
dComIfGp_evmng_startCheck("PUZZLE_RUPEE"))
|
|
{
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK80000_e;
|
|
dComIfGp_setAStatus(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
} else if (dComIfGp_getOperateWind() == 2) {
|
|
dComIfGp_setDoStatusForce(dActStts_CHOOSE_e);
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK400000_e;
|
|
} else if (dComIfGp_getMiniGameType() == 8 && !dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
|
|
dComIfGp_setDoStatusForce(dActStts_bow_01);
|
|
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK80000_e;
|
|
} else if (dComIfGp_checkPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e) && dComIfGp_getAStatus() == dActStts_RETURN_e) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK200000_e;
|
|
} else if (dComIfGp_event_runCheck() && dMenu_getMenuStatus() != 4) {
|
|
if (dComIfGp_demo_mode() != 1 && dComIfGp_getMesgStatus() != 0 && !dComIfGp_getMetronome()) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK100_e;
|
|
} else if (dComIfGp_demo_mode() != 1 && dComIfGp_getMetronome()) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK200000_e;
|
|
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
|
|
} else {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK40_e;
|
|
}
|
|
}
|
|
if (dMenu_flag() != 0) {
|
|
if (dComIfGp_checkPlayerStatus1(0, daPyStts1_PICTO_BOX_AIM_e) || dComIfGp_getPictureStatus() == 2 ||
|
|
dComIfGp_getPictureStatus() == 3 || dComIfGp_isHeapLockFlag() == 6)
|
|
{
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK20000_e;
|
|
dComIfGp_setAStatus(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
dComIfGp_setRStatus(dActStts_BLANK_e);
|
|
} else if (dMenu_getMenuStatus() == 1) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK8_e;
|
|
} else if (dMenu_getMenuStatus() == 2) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK10_e;
|
|
} else if (dMenu_getMenuStatus() == 4) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK800000_e;
|
|
} else {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK20_e;
|
|
}
|
|
} else {
|
|
if (dComIfGp_getCb1Player() == daPy_getPlayerActorClass() || daNpc_kam_c::m_hyoi_kamome != 0) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK40000_e;
|
|
if (dComIfGp_getAStatus() == dActStts_sword_01) {
|
|
dComIfGp_setAStatus(dActStts_BLANK_e);
|
|
}
|
|
} else if (
|
|
dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) ||
|
|
// @bug Out of bounds array read.
|
|
// It seems like the developers probably intended to have a check like this:
|
|
// dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000100_e)
|
|
// Which would have checked if bit 0x100 of camera 0's attention statuses is set.
|
|
// But made a mistake and instead typed:
|
|
// dComIfGp_getCameraAttentionStatus(dCamAttnStts_00000100_e)
|
|
// Which checks if any of camera 0x100's attention statuses are set.
|
|
// As there is only a single camera, this mistake causes an OoB read 256 elements past the end of the array.
|
|
// This winds up reading one of the matrix floats of a shadow as an integer, equivalent to the following check:
|
|
// *(u32*)&g_dComIfG_gameInfo.drawlist.mShadowControl.mSimple[117].mVolumeMtx[1][2] != 0
|
|
(dComIfGp_getCameraAttentionStatus(dCamAttnStts_00000100_e) && dComIfGp_checkPlayerStatus0(0, daPyStts0_CRAWL_e))
|
|
) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK100000_e;
|
|
}
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK100_e;
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK80_e;
|
|
} else if (dComIfGp_checkPlayerStatus1(0, daPyStts1_PICTO_BOX_AIM_e) || dComIfGp_getPictureStatus() == 2 || dComIfGp_getPictureStatus() == 3 ||
|
|
dComIfGp_isHeapLockFlag() == 6)
|
|
{
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK20000_e;
|
|
dComIfGp_setAStatus(dActStts_BLANK_e);
|
|
dComIfGp_setRStatus(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK400_e;
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_CRAWL_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK200_e;
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK800000_e)) {
|
|
if (daPy_getPlayerActorClass()->checkRopeTag()) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK800_e;
|
|
} else {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK1000_e;
|
|
}
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK2000_e;
|
|
} else if (dComIfGp_checkPlayerStatus0(0, (daPyStts0_HANG_e | daPyStts0_UNK2000000_e))) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK8000_e;
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK4000000_e)) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK10000_e;
|
|
}
|
|
}
|
|
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_DUNGEON_e) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK4_e;
|
|
} else {
|
|
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MISC_e) {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK2_e;
|
|
} else {
|
|
i_Meter->mStatusFlags |= dMtrStts_UNK1_e;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F01C0-801F0258 .text dMeter_alphaClose__FPsPs */
|
|
f32 dMeter_alphaClose(s16* timer, s16* value) {
|
|
f32 ret;
|
|
if (*timer == 8) {
|
|
*timer = 9;
|
|
ret = 1.0f;
|
|
*value = 1;
|
|
} else if (*timer == 9) {
|
|
if (*value < 6) {
|
|
ret = 1.0f - fopMsgM_valueIncrease(6, *value, 1);
|
|
(*value)++;
|
|
} else {
|
|
ret = 0.0f;
|
|
*timer = 0;
|
|
}
|
|
} else {
|
|
ret = 0.0f;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* 801F0258-801F02E8 .text dMeter_alphaOpen__FPsPs */
|
|
f32 dMeter_alphaOpen(s16* timer, s16* value) {
|
|
f32 ret;
|
|
if (*timer == 0) {
|
|
*timer = 7;
|
|
ret = 0.0f;
|
|
*value = 0;
|
|
} else if (*timer == 7) {
|
|
if (*value < 6) {
|
|
ret = fopMsgM_valueIncrease(6, *value, 1);
|
|
(*value)++;
|
|
} else {
|
|
ret = 1.0f;
|
|
*timer = 8;
|
|
}
|
|
} else {
|
|
ret = 1.0f;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* 801F02E8-801F0320 .text dMeter_rupy_num__FPcs */
|
|
void dMeter_rupy_num(char* buf, s16 num) {
|
|
sprintf(buf, "rupy_num_%02d.bti", num);
|
|
}
|
|
|
|
/* 801F0320-801F0378 .text dMeter_actionTex__Fs */
|
|
const char* dMeter_actionTex(s16 id) {
|
|
static const struct {
|
|
u8 id;
|
|
const char* filename;
|
|
} act[] = {
|
|
{dActStts_BLANK_e, "ba_shiraberu.bti"},
|
|
{dActStts_LOOK_e, "ba_miru.bti"},
|
|
{dActStts_SPEAK_e, "ba_syaberu.bti"},
|
|
{dActStts_CHARTS_e, "ba_shiraberu.bti"},
|
|
{dActStts_LIFT_e, "ba_motu.bti"},
|
|
{dActStts_CLIMB_e, "ba_noru.bti"},
|
|
{dActStts_LET_GO_e, "ba_oriru.bti"},
|
|
{dActStts_RETURN_e, "ba_modoru.bti"},
|
|
{dActStts_PUT_AWAY_e, "ba_shimau.bti"},
|
|
{dActStts_DROP_e, "ba_oku.bti"},
|
|
{dActStts_CHECK_e, "ba_chekku.bti"},
|
|
{dActStts_OPEN_e, "ba_hiraku.bti"},
|
|
{dActStts_ATTACK_e, "ba_attack.bti"},
|
|
{dActStts_ba_osu, "ba_osu.bti"},
|
|
{dActStts_THROW_e, "ba_nageru.bti"},
|
|
{dActStts_CROUCH_e, "ba_shagamu.bti"},
|
|
{dActStts_SIDLE_e, "ba_harituku.bti"},
|
|
{dActStts_GRAB_e, "ba_tukamu.bti"},
|
|
{dActStts_JUMP_e, "ba_jump.bti"},
|
|
{dActStts_STOP_e, "ba_tomeru.bti"},
|
|
{dActStts_ba_haru, "ba_haru.bti"},
|
|
{dActStts_ba_tatamu, "ba_tatamu.bti"},
|
|
{dActStts_LET_GO_ROPE_e, "ba_hanasu.bti"},
|
|
{dActStts_CHOOSE_e, "ba_kettei.bti"},
|
|
{dActStts_ba_kogu, "ba_kogu.bti"},
|
|
{dActStts_NEXT_e, "ba_tugihe.bti"},
|
|
{dActStts_PARRY_e, "ba_sake.bti"},
|
|
{dActStts_PICK_UP_e, "ba_motu_buki.bti"},
|
|
{dActStts_GET_IN_SHIP_e, "ba_noru_hune.bti"},
|
|
{dActStts_GET_OUT_SHIP_e, "ba_oriru_hune.bti"},
|
|
{dActStts_ba_save, "ba_save.bti"},
|
|
{dActStts_ba_option, "ba_option.bti"},
|
|
{dActStts_TAKE_PHOTO_e, "ba_toru.bti"},
|
|
{dActStts_INFO_e, "ba_setumei.bti"},
|
|
{dActStts_SWAP_MODES_e, "ba_kirikae.bti"},
|
|
{dActStts_FLY_e, "ba_tobu.bti"},
|
|
{dActStts_CALL_e, "ba_yobu.bti"},
|
|
{dActStts_BID_e, "ba_hoshii.bti"},
|
|
{dActStts_READ_e, "ba_yomu.bti"},
|
|
{dActStts_CANCEL_e, "ba_yameru.bti"},
|
|
{dActStts_ba_kakudai, "ba_kakudai.bti"},
|
|
{dActStts_ba_hikaku, "ba_hikaku.bti"},
|
|
{dActStts_ba_zoom01, "ba_zoom01.bti"},
|
|
{dActStts_ba_zoom02, "ba_zoom02.bti"},
|
|
{dActStts_CRUISE_e, "ba_susumu.bti"},
|
|
{dActStts_ba_nageru__dupe_2D, "ba_nageru.bti"},
|
|
{dActStts_ba_motu__dupe_2E, "ba_motu.bti"},
|
|
{dActStts_SWING_e, "ba_huru.bti"},
|
|
{dActStts_SEA_CHART_e, "ba_kaizuhe.bti"},
|
|
{dActStts_ba_sake__dupe_31, "ba_sake.bti"},
|
|
{dActStts_ba_modoru__dupe_32, "ba_modoru.bti"},
|
|
{dActStts_ba_save__dupe_33, "ba_save.bti"},
|
|
{dActStts_ba_save__dupe_34, "ba_save.bti"},
|
|
{dActStts_sword_01, "sword_01.bti"},
|
|
{dActStts_DEFEND_e, "ba_husegu.bti"},
|
|
{dActStts_boko_stick, "boko_stick.bti"},
|
|
{dActStts_hatchet, "hatchet.bti"},
|
|
{dActStts_iron_club, "iron_club.bti"},
|
|
{dActStts_longsword, "longsword.bti"},
|
|
{dActStts_spear, "spear.bti"},
|
|
{dActStts_spear__dupe_3C, "spear.bti"},
|
|
{dActStts_bow_01, "bow_01.bti"},
|
|
{dActStts_HIDDEN_e, "ba_modoru.bti"},
|
|
};
|
|
int found = 0;
|
|
for (int i = 0; i < ARRAY_SIZE(act); i++) {
|
|
if (id == act[i].id) {
|
|
found = i;
|
|
break;
|
|
}
|
|
}
|
|
return act[found].filename;
|
|
}
|
|
|
|
/* 801F0378-801F041C .text dMeter_weponTex__Fv */
|
|
const char* dMeter_weponTex() {
|
|
static const char* wepon[] = {
|
|
"sword_00.bti",
|
|
"sword_01.bti",
|
|
"sword_02.bti",
|
|
"sword_03.bti",
|
|
};
|
|
int var1;
|
|
if (dComIfGs_isCollect(0, 3)) {
|
|
var1 = 3;
|
|
} else if (dComIfGs_isCollect(0, 2)) {
|
|
var1 = 2;
|
|
} else if (dComIfGs_isCollect(0, 1)) {
|
|
var1 = 1;
|
|
} else {
|
|
var1 = 0;
|
|
}
|
|
return wepon[var1];
|
|
}
|
|
|
|
/* 801F041C-801F0434 .text dMeter_heartTex__Fs */
|
|
const char* dMeter_heartTex(s16 param_1) {
|
|
static const char* ht[] = {
|
|
"heart.bti",
|
|
"heart_03.bti",
|
|
"heart_02.bti",
|
|
"heart_01.bti",
|
|
"heart_04.bti",
|
|
};
|
|
return ht[param_1];
|
|
}
|
|
|
|
/* 801F0434-801F0608 .text dMeter_recollect_boss_data__Fv */
|
|
void dMeter_recollect_boss_data() {
|
|
if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e) && dComIfGs_isStageBossEnemy()) {
|
|
if ((dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_DRC) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D80)) {
|
|
dComIfGs_copyPlayerRecollectionData();
|
|
dComIfGs_onEventBit(dSv_event_flag_c::UNK_3D80);
|
|
} else if ((dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_FW) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D40)) {
|
|
dComIfGs_copyPlayerRecollectionData();
|
|
dComIfGs_onEventBit(dSv_event_flag_c::UNK_3D40);
|
|
} else if ((dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_ET) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D20)) {
|
|
dComIfGs_copyPlayerRecollectionData();
|
|
dComIfGs_onEventBit(dSv_event_flag_c::UNK_3D20);
|
|
} else if ((dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_WT) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D10)) {
|
|
dComIfGs_copyPlayerRecollectionData();
|
|
dComIfGs_onEventBit(dSv_event_flag_c::UNK_3D10);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F0608-801F06CC .text draw__16dDlst_2DMETER1_cFv */
|
|
void dDlst_2DMETER1_c::draw() {
|
|
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
|
|
graf->setPort();
|
|
sMainParts3->draw(0.0f, 0.0f, graf);
|
|
sMainParts1->draw(0.0f, 0.0f, graf);
|
|
if (sScrTimer1 != NULL) {
|
|
sScrTimer1->setScissor(true);
|
|
sScrTimer1->draw(0.0f, 0.0f, graf);
|
|
}
|
|
if (sScrTimer2 != NULL) {
|
|
sScrTimer2->draw(0.0f, 0.0f, graf);
|
|
}
|
|
sChoiceRoad->draw(0.0f, 0.0f, graf);
|
|
}
|
|
|
|
/* 801F06CC-801F0724 .text draw__16dDlst_2DMETER2_cFv */
|
|
void dDlst_2DMETER2_c::draw() {
|
|
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
|
|
graf->setPort();
|
|
sMainParts2->draw(0.0f, 0.0f, graf);
|
|
}
|
|
|
|
void dMeter_setNowHeartScaleXY(fopMsgM_pane_class*);
|
|
|
|
/* 801F0724-801F07D4 .text dMeter_heart_data_set__FP18fopMsgM_pane_classP18fopMsgM_pane_classP18fopMsgM_pane_class */
|
|
void dMeter_heart_data_set(fopMsgM_pane_class* pane1, fopMsgM_pane_class* pane2, fopMsgM_pane_class* pane3) {
|
|
dMeter_setNowHeartScaleXY(pane2);
|
|
dMeter_setNowHeartScaleXY(pane3);
|
|
pane1->mPosTopLeft = pane2->mPosTopLeft;
|
|
pane1->mSize = pane2->mSize;
|
|
pane1->mPosCenter = pane2->mPosCenter;
|
|
pane1->pane->move(pane1->mPosTopLeft.x, pane1->mPosTopLeft.y);
|
|
pane1->pane->resize(pane1->mSize.x, pane1->mSize.y);
|
|
}
|
|
|
|
/* 801F07D4-801F0820 .text dMeter_paneBottomScaleY__FP18fopMsgM_pane_classf */
|
|
void dMeter_paneBottomScaleY(fopMsgM_pane_class* pane, f32 scale) {
|
|
f32 oldBottom = (pane->mPosTopLeft.y + pane->mSize.y);
|
|
pane->mSize.y = pane->mSizeOrig.y * scale;
|
|
pane->mPosCenter.y = oldBottom - (pane->mSize.y / 2.0f);
|
|
fopMsgM_cposMove(pane);
|
|
}
|
|
|
|
/* 801F0820-801F08DC .text dMeter_parentPaneTrans__FP18fopMsgM_pane_classf */
|
|
void dMeter_parentPaneTrans(fopMsgM_pane_class* pane, f32 scale) {
|
|
pane->mPosCenter.x += g_meterHIO.field_0x50;
|
|
pane->mPosCenter.y += g_meterHIO.field_0x52;
|
|
fopMsgM_paneScaleXY(pane, scale);
|
|
J2DPane* j2dPane = pane->pane;
|
|
j2dPane->rotate(pane->mSize.x / 2.0f, pane->mSize.y / 2.0f, ROTATE_Z, j2dPane->getRotate());
|
|
}
|
|
|
|
/* 801F08DC-801F09D8 .text dMeter_childPaneTrans__FP18fopMsgM_pane_classP18fopMsgM_pane_classf */
|
|
void dMeter_childPaneTrans(fopMsgM_pane_class* pane, fopMsgM_pane_class* parent, f32 scale) {
|
|
f32 x = pane->mPosCenterOrig.x - parent->mPosCenterOrig.x;
|
|
f32 y = pane->mPosCenterOrig.y - parent->mPosCenterOrig.y;
|
|
pane->mPosCenter.x += x * (scale - 1.0f);
|
|
pane->mPosCenter.y += y * (scale - 1.0f);
|
|
pane->mPosCenter.x += g_meterHIO.field_0x50;
|
|
pane->mPosCenter.y += g_meterHIO.field_0x52;
|
|
fopMsgM_paneScaleXY(pane, scale);
|
|
J2DPane* j2dPane = pane->pane;
|
|
j2dPane->rotate(pane->mSize.x / 2.0f, pane->mSize.y / 2.0f, ROTATE_Z, j2dPane->getRotate());
|
|
}
|
|
|
|
/* 801F09D8-801F0AD8 .text dMeter_childPaneTransOnly__FP18fopMsgM_pane_classP18fopMsgM_pane_classff */
|
|
void dMeter_childPaneTransOnly(fopMsgM_pane_class* pane, fopMsgM_pane_class* parent, f32 transScale, f32 scale) {
|
|
f32 x = pane->mPosCenterOrig.x - parent->mPosCenterOrig.x;
|
|
f32 y = pane->mPosCenterOrig.y - parent->mPosCenterOrig.y;
|
|
pane->mPosCenter.x += x * (transScale - 1.0f);
|
|
pane->mPosCenter.y += y * (transScale - 1.0f);
|
|
pane->mPosCenter.x += g_meterHIO.field_0x50;
|
|
pane->mPosCenter.y += g_meterHIO.field_0x52;
|
|
fopMsgM_paneScaleXY(pane, scale);
|
|
J2DPane* j2dPane = pane->pane;
|
|
j2dPane->rotate(pane->mSize.x / 2.0f, pane->mSize.y / 2.0f, ROTATE_Z, j2dPane->getRotate());
|
|
}
|
|
|
|
/* 801F0AD8-801F0C10 .text dMeter_childPaneTransChildTrans__FP18fopMsgM_pane_classP18fopMsgM_pane_classP18fopMsgM_pane_classff */
|
|
void dMeter_childPaneTransChildTrans(fopMsgM_pane_class* param_1, fopMsgM_pane_class* param_2, fopMsgM_pane_class* param_3, f32 param_4, f32 param_5) {
|
|
f32 x = param_1->mPosCenterOrig.x - param_2->mPosCenterOrig.x;
|
|
f32 y = param_1->mPosCenterOrig.y - param_2->mPosCenterOrig.y;
|
|
param_1->mPosCenter.x += x * (param_4 - 1.0f);
|
|
param_1->mPosCenter.y += y * (param_4 - 1.0f);
|
|
x = param_1->mPosCenter.x - param_3->mPosCenter.x;
|
|
y = param_1->mPosCenter.y - param_3->mPosCenter.y;
|
|
param_1->mPosCenter.x += x * (param_5 - 1.0f);
|
|
param_1->mPosCenter.y += y * (param_5 - 1.0f);
|
|
param_1->mPosCenter.x += g_meterHIO.field_0x50;
|
|
param_1->mPosCenter.y += g_meterHIO.field_0x52;
|
|
fopMsgM_paneScaleXY(param_1, param_5);
|
|
J2DPane* j2dPane = param_1->pane;
|
|
j2dPane->rotate(param_1->mSize.x / 2.0f, param_1->mSize.y / 2.0f, ROTATE_Z, j2dPane->getRotate());
|
|
}
|
|
|
|
/* 801F0C10-801F0D0C .text dMeter_childPaneTransChildTransOnly__FP18fopMsgM_pane_classP18fopMsgM_pane_classP18fopMsgM_pane_classff */
|
|
void dMeter_childPaneTransChildTransOnly(fopMsgM_pane_class* param_1, fopMsgM_pane_class* param_2, fopMsgM_pane_class* param_3, f32 param_4, f32 param_5) {
|
|
f32 x = param_1->mPosCenterOrig.x - param_2->mPosCenterOrig.x;
|
|
f32 y = param_1->mPosCenterOrig.y - param_2->mPosCenterOrig.y;
|
|
param_1->mPosCenter.x += x * (param_4 - 1.0f);
|
|
param_1->mPosCenter.y += y * (param_4 - 1.0f);
|
|
param_1->mPosCenter.x += g_meterHIO.field_0x50;
|
|
param_1->mPosCenter.y += g_meterHIO.field_0x52;
|
|
fopMsgM_cposMove(param_1);
|
|
J2DPane* j2dPane = param_1->pane;
|
|
j2dPane->rotate(param_1->mSize.x / 2.0f, param_1->mSize.y / 2.0f, ROTATE_Z, j2dPane->getRotate());
|
|
}
|
|
|
|
/* 801F0D0C-801F0D64 .text dMeter_setHeartScaleXY__FP18fopMsgM_pane_classs */
|
|
void dMeter_setHeartScaleXY(fopMsgM_pane_class* pane, s16 scale) {
|
|
f32 scaleX, scaleY;
|
|
if (scale != 4) {
|
|
scaleX = 1.0f;
|
|
scaleY = 1.0f;
|
|
} else {
|
|
scaleX = texRateX;
|
|
scaleY = texRateY;
|
|
}
|
|
pane->mSize.x = pane->mSizeOrig.x * scaleX;
|
|
pane->mSize.y = pane->mSizeOrig.y * scaleY;
|
|
fopMsgM_cposMove(pane);
|
|
}
|
|
|
|
/* 801F0D64-801F0DD4 .text dMeter_setHeartScaleXY2__FP18fopMsgM_pane_classs */
|
|
void dMeter_setHeartScaleXY2(fopMsgM_pane_class* pane, s16 scale) {
|
|
f32 scaleX, scaleY;
|
|
if (scale != 4) {
|
|
scaleX = 1.0f;
|
|
scaleY = 1.0f;
|
|
} else {
|
|
scaleX = texRateX;
|
|
scaleY = texRateY;
|
|
}
|
|
pane->mSize.x = pane->mSizeOrig.x * scaleX * g_meterHIO.field_0x48;
|
|
pane->mSize.y = pane->mSizeOrig.y * scaleY * g_meterHIO.field_0x48;
|
|
fopMsgM_cposMove(pane);
|
|
}
|
|
|
|
/* 801F0DD4-801F0E1C .text dMeter_setNowHeartScaleXY__FP18fopMsgM_pane_class */
|
|
void dMeter_setNowHeartScaleXY(fopMsgM_pane_class* pane) {
|
|
pane->mSize.x = pane->mSizeOrig.x * g_meterHIO.field_0x10;
|
|
pane->mSize.y = pane->mSizeOrig.y * g_meterHIO.field_0x10;
|
|
fopMsgM_cposMove(pane);
|
|
}
|
|
|
|
/* 801F0E1C-801F0E74 .text dMeter_setNowHeartScaleXY2__FP18fopMsgM_pane_class */
|
|
void dMeter_setNowHeartScaleXY2(fopMsgM_pane_class* pane) {
|
|
pane->mSize.x = pane->mSizeOrig.x * g_meterHIO.field_0x10 * g_meterHIO.field_0x48;
|
|
pane->mSize.y = pane->mSizeOrig.y * g_meterHIO.field_0x10 * g_meterHIO.field_0x48;
|
|
fopMsgM_cposMove(pane);
|
|
}
|
|
|
|
/* 801F0E74-801F0EE4 .text dMeter_heartChangeTexture__FP15sub_meter_classPCci */
|
|
void dMeter_heartChangeTexture(sub_meter_class* i_Meter, const char* textureName, int no) {
|
|
((J2DPicture*)i_Meter->mHeart[no].pane)->changeTexture(textureName, 0);
|
|
((J2DPicture*)i_Meter->mHeartShadow[no].pane)->changeTexture(textureName, 0);
|
|
dMeter_PaneShow(&i_Meter->mHeart[no]);
|
|
dMeter_PaneShow(&i_Meter->mHeartShadow[no]);
|
|
}
|
|
|
|
/* 801F0EE4-801F10B0 .text dMeter_heartScaleInit__FP15sub_meter_class */
|
|
void dMeter_heartScaleInit(sub_meter_class* i_Meter) {
|
|
int uVar1;
|
|
int uVar2;
|
|
int iVar9;
|
|
|
|
uVar1 = i_Meter->mMaxHP / 4;
|
|
uVar2 = i_Meter->mCurrHP - 1;
|
|
iVar9 = uVar2 / 4;
|
|
for (s32 i = 0; i < 20; i++) {
|
|
if (uVar1 == 0) {
|
|
i_Meter->mHeart[i].mUserArea = 5;
|
|
} else if (i_Meter->mCurrHP == 0) {
|
|
if (i < uVar1) {
|
|
i_Meter->mHeart[i].mUserArea = 4;
|
|
} else {
|
|
i_Meter->mHeart[i].mUserArea = 5;
|
|
}
|
|
} else if (i == iVar9) {
|
|
i_Meter->mHeart[i].mUserArea = i_Meter->mCurrHP % 4;
|
|
} else if (i < iVar9) {
|
|
i_Meter->mHeart[i].mUserArea = 0;
|
|
} else if (i < uVar1) {
|
|
i_Meter->mHeart[i].mUserArea = 4;
|
|
} else {
|
|
i_Meter->mHeart[i].mUserArea = 5;
|
|
}
|
|
dMeter_setHeartScaleXY(&i_Meter->mHeart[i], i_Meter->mHeart[i].mUserArea);
|
|
dMeter_setHeartScaleXY(&i_Meter->mHeartShadow[i], i_Meter->mHeart[i].mUserArea);
|
|
if (i_Meter->mHeart[i].mUserArea != 5) {
|
|
dMeter_heartChangeTexture(i_Meter, dMeter_heartTex(i_Meter->mHeart[i].mUserArea), i);
|
|
} else {
|
|
dMeter_PaneHide(&i_Meter->mHeart[i]);
|
|
dMeter_PaneHide(&i_Meter->mHeartShadow[i]);
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->mHeart[i], 0.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->mHeartShadow[i], 0.0f, 0.0f);
|
|
uVar2 = i_Meter->mCurrHP - 1;
|
|
if ((i == uVar2 / 4) && i_Meter->mCurrHP != 0) {
|
|
((J2DPicture*)i_Meter->field_0x0f00.pane)->changeTexture(dMeter_heartTex(i_Meter->mHeart[i].mUserArea), 0);
|
|
dMeter_heart_data_set(&i_Meter->field_0x0f00, &i_Meter->mHeart[i], &i_Meter->mHeartShadow[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F10B0-801F10FC .text dMeter_maxLifeChange__FP15sub_meter_class */
|
|
void dMeter_maxLifeChange(sub_meter_class* i_Meter) {
|
|
if (i_Meter->field_0x300c > 0) {
|
|
i_Meter->mMaxHP++;
|
|
i_Meter->field_0x300c--;
|
|
return;
|
|
}
|
|
if (i_Meter->field_0x300c >= 0) {
|
|
return;
|
|
}
|
|
i_Meter->mMaxHP--;
|
|
i_Meter->field_0x300c++;
|
|
}
|
|
|
|
/* 801F10FC-801F11F8 .text dMeter_lifeChange__FP15sub_meter_classPb */
|
|
void dMeter_lifeChange(sub_meter_class* i_Meter, bool* param_2) {
|
|
if (i_Meter->mAdjustHp > 0) {
|
|
i_Meter->mCurrHP++;
|
|
i_Meter->mAdjustHp--;
|
|
if (*param_2 != false) {
|
|
if ((i_Meter->mCurrHP % 4) == 0) {
|
|
mDoAud_seStart(JA_SE_HP_GAUGE_INC);
|
|
}
|
|
if (i_Meter->mAdjustHp == 0) {
|
|
*param_2 = false;
|
|
}
|
|
}
|
|
} else if (i_Meter->mAdjustHp < 0) {
|
|
i_Meter->mCurrHP--;
|
|
i_Meter->mAdjustHp++;
|
|
}
|
|
i_Meter->field_0x0f00.mUserArea = 0;
|
|
g_dComIfG_gameInfo.play.mItemNowLife = i_Meter->mCurrHP;
|
|
}
|
|
|
|
/* 801F11F8-801F13A4 .text dMeter_heartLightMove__FP15sub_meter_class */
|
|
void dMeter_heartLightMove(sub_meter_class* i_Meter) {
|
|
uint hp;
|
|
int iVar1;
|
|
u32 uVar2;
|
|
f32 dVar3;
|
|
f32 dVar4;
|
|
f32 dVar5;
|
|
|
|
hp = dComIfGs_getLife() - 1;
|
|
if ((int)hp / 4) {
|
|
iVar1 = 22;
|
|
} else {
|
|
iVar1 = 12;
|
|
}
|
|
i_Meter->field_0x0f00.mUserArea++;
|
|
if (iVar1 < i_Meter->field_0x0f00.mUserArea) {
|
|
i_Meter->field_0x0f00.mUserArea = 0;
|
|
}
|
|
dVar3 = fopMsgM_valueIncrease(iVar1, (int)i_Meter->field_0x0f00.mUserArea, 0);
|
|
uVar2 = (int)(dVar3 * 255.0f);
|
|
dVar4 = (g_meterHIO.field_0x3c * dVar3) + 1.0f;
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0f00, 1.0f - dVar3);
|
|
((J2DPicture*)i_Meter->field_0x0f00.pane)->setBlack((GXColor){uVar2, uVar2, uVar2, 0});
|
|
dVar3 = i_Meter->field_0x0f00.mSize.x * dVar4;
|
|
dVar5 = i_Meter->field_0x0f00.mSize.y * dVar4;
|
|
i_Meter->field_0x0f00.mPosTopLeft.x = i_Meter->field_0x0f00.mPosCenter.x - (dVar3 / 2.0f);
|
|
i_Meter->field_0x0f00.mPosTopLeft.y = i_Meter->field_0x0f00.mPosCenter.y - (dVar5 / 2.0f);
|
|
i_Meter->field_0x0f00.pane->move(i_Meter->field_0x0f00.mPosTopLeft.x, i_Meter->field_0x0f00.mPosTopLeft.y);
|
|
i_Meter->field_0x0f00.pane->resize(dVar3, dVar5);
|
|
}
|
|
|
|
/* 801F13A4-801F153C .text dMeter_heartAlpha__FP15sub_meter_class */
|
|
void dMeter_heartAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar5;
|
|
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x10) && !dComIfGp_checkPlayerStatus1(0, daPyStts1_UNK2000_e)) ||
|
|
dMenu_getCollectMode() == 4 || (i_Meter->mStatusFlags & dMtrStts_UNK200000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80000_e) || dMeter_isAuctionFlag() ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK400000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK800000_e)))
|
|
{
|
|
if (i_Meter->field_0x3014 > 0) {
|
|
i_Meter->field_0x3014--;
|
|
} else {
|
|
i_Meter->field_0x3014 = 0;
|
|
}
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK8_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10_e)) {
|
|
if (i_Meter->field_0x3014 < 3) {
|
|
i_Meter->field_0x3014++;
|
|
} else if (i_Meter->field_0x3014 > 3) {
|
|
i_Meter->field_0x3014--;
|
|
} else {
|
|
i_Meter->field_0x3014 = 3;
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x3014 < 5) {
|
|
i_Meter->field_0x3014++;
|
|
} else {
|
|
i_Meter->field_0x3014 = 5;
|
|
}
|
|
if (dComIfGp_getMiniGameType() != 6) {
|
|
mDoAud_heartGaugeOn();
|
|
}
|
|
}
|
|
dVar5 = fopMsgM_valueIncrease(5, i_Meter->field_0x3014, 0);
|
|
i_Meter->field_0x2fbc = dVar5;
|
|
}
|
|
|
|
/* 801F153C-801F15EC .text dMeter_heartInit__FP15sub_meter_class */
|
|
void dMeter_heartInit(sub_meter_class* i_Meter) {
|
|
texScaleX = i_Meter->mHeart[0].mSizeOrig.x / 40.0f;
|
|
texScaleY = i_Meter->mHeart[0].mSizeOrig.y / 32.0f;
|
|
texRateX = 0.4f;
|
|
texRateY = 0.5f;
|
|
i_Meter->field_0x2f70 = 1.0f;
|
|
i_Meter->field_0x2fbc = 0.0f;
|
|
i_Meter->mMaxHP = dComIfGs_getMaxLife();
|
|
i_Meter->mCurrHP = dComIfGs_getLife();
|
|
i_Meter->field_0x3014 = 5;
|
|
i_Meter->field_0x0f00.mUserArea = 0;
|
|
i_Meter->field_0x0f00.mUserArea = 0;
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0f00);
|
|
dMeter_heartScaleInit(i_Meter);
|
|
dComIfGp_setItemNowLife(i_Meter->mCurrHP);
|
|
}
|
|
|
|
/* 801F15EC-801F17F0 .text dMeter_LifeMove__FP15sub_meter_classb */
|
|
void dMeter_LifeMove(sub_meter_class* i_Meter, bool bForce) {
|
|
/* Nonmatching */
|
|
int iVar1;
|
|
bool bVar2;
|
|
s16 maxHP;
|
|
s16 newHP;
|
|
int uVar3;
|
|
|
|
static bool soundOnFlag = false;
|
|
bVar2 = false;
|
|
if (dComIfGp_getItemMaxLifeCount() != 0 || ((s16)dComIfGp_getItemLifeCount() != 0) || bForce) {
|
|
maxHP = dComIfGs_getMaxLife() + dComIfGp_getItemMaxLifeCount();
|
|
uVar3 = (s16)maxHP;
|
|
if (dComIfGp_getItemMaxLifeCount() > 0) {
|
|
newHP = ((int)uVar3 / 4) * 4;
|
|
} else {
|
|
newHP = dComIfGs_getLife() + (int)dComIfGp_getItemLifeCount();
|
|
}
|
|
if (dComIfGp_getItemMaxLifeCount() != 0) {
|
|
if ((int)uVar3 > 0x50) {
|
|
maxHP = 0x50;
|
|
} else if (maxHP < 0) {
|
|
maxHP = 0;
|
|
}
|
|
i_Meter->field_0x300c = maxHP - i_Meter->mMaxHP;
|
|
dComIfGs_setMaxLife(maxHP);
|
|
g_dComIfG_gameInfo.play.mItemMaxLifeCount = 0;
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
}
|
|
uVar3 = (s16)maxHP;
|
|
iVar1 = ((int)uVar3 / 4) * 4;
|
|
if (newHP > iVar1) {
|
|
newHP = iVar1;
|
|
} else if (newHP < 0) {
|
|
newHP = 0;
|
|
}
|
|
i_Meter->mAdjustHp = newHP - i_Meter->mCurrHP;
|
|
dComIfGs_setLife(newHP);
|
|
g_dComIfG_gameInfo.play.mItemLifeCount = 0.0f;
|
|
if (i_Meter->mAdjustHp >= 4) {
|
|
soundOnFlag = true;
|
|
}
|
|
}
|
|
if (i_Meter->field_0x300c != 0 || bForce) {
|
|
dMeter_maxLifeChange(i_Meter);
|
|
bVar2 = true;
|
|
}
|
|
if (i_Meter->mAdjustHp != 0 || bForce) {
|
|
dMeter_lifeChange(i_Meter, &soundOnFlag);
|
|
bVar2 = true;
|
|
}
|
|
if (bVar2) {
|
|
dMeter_heartScaleInit(i_Meter);
|
|
}
|
|
if (dComIfGs_getLife() != 0) {
|
|
dMeter_heartLightMove(i_Meter);
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0f00);
|
|
}
|
|
}
|
|
|
|
/* 801F17F0-801F1A48 .text dMeter_BattleLifeMove__FP15sub_meter_classb */
|
|
void dMeter_BattleLifeMove(sub_meter_class* i_Meter, bool param_2) {
|
|
/* Nonmatching */
|
|
const char* pFilename;
|
|
f32 dVar4;
|
|
|
|
static u8 point = 0;
|
|
dVar4 = (i_Meter->mHeart[1].mPosCenterOrig.x - i_Meter->mHeart[0].mPosCenterOrig.x);
|
|
if (point != daNpc_Ji1_c::game_life_point || !param_2) {
|
|
for (s32 i = 0; i < 20; i++) {
|
|
point = daNpc_Ji1_c::game_life_point;
|
|
if (i == 1 || i == 2) {
|
|
i_Meter->mHeart[i].mPosCenter.x = (s32)(g_meterHIO.field_0x4c + i_Meter->mHeart[i].mPosCenterOrig.x) * (g_meterHIO.field_0x58 * dVar4);
|
|
i_Meter->mHeartShadow[i].mPosCenter.x =
|
|
(s32)(g_meterHIO.field_0x4c + i_Meter->mHeartShadow[i].mPosCenterOrig.x) * (g_meterHIO.field_0x58 * dVar4);
|
|
i_Meter->mHeart[i].mPosCenter.y = i_Meter->mHeart[i].mPosCenterOrig.y + g_meterHIO.field_0x5c;
|
|
i_Meter->mHeartShadow[i].mPosCenter.y = i_Meter->mHeartShadow[i].mPosCenterOrig.y + g_meterHIO.field_0x5c;
|
|
} else if (i == 0) {
|
|
i_Meter->mHeart[i].mPosCenter.x = i_Meter->mHeart[i].mPosCenterOrig.x + g_meterHIO.field_0x4c;
|
|
i_Meter->mHeartShadow[i].mPosCenter.x = i_Meter->mHeartShadow[i].mPosCenterOrig.x + g_meterHIO.field_0x4c;
|
|
i_Meter->mHeart[i].mPosCenter.y = i_Meter->mHeart[i].mPosCenterOrig.y + g_meterHIO.field_0x5c;
|
|
i_Meter->mHeartShadow[i].mPosCenter.y = i_Meter->mHeartShadow[i].mPosCenterOrig.y + g_meterHIO.field_0x5c;
|
|
}
|
|
if (i < point) {
|
|
pFilename = dMeter_heartTex(0);
|
|
dMeter_heartChangeTexture(i_Meter, pFilename, i);
|
|
if (i == point - 1) {
|
|
dMeter_setNowHeartScaleXY2(&i_Meter->mHeart[i]);
|
|
dMeter_setNowHeartScaleXY2(&i_Meter->mHeartShadow[i]);
|
|
} else {
|
|
dMeter_setHeartScaleXY2(&i_Meter->mHeart[i], 0);
|
|
dMeter_setHeartScaleXY2(&i_Meter->mHeartShadow[i], 0);
|
|
}
|
|
} else if (i < 3) {
|
|
pFilename = dMeter_heartTex(4);
|
|
dMeter_heartChangeTexture(i_Meter, pFilename, i);
|
|
dMeter_setHeartScaleXY2(&i_Meter->mHeart[i], 4);
|
|
dMeter_setHeartScaleXY2(&i_Meter->mHeartShadow[i], 4);
|
|
} else {
|
|
dMeter_PaneHide(&i_Meter->mHeart[i]);
|
|
dMeter_PaneHide(&i_Meter->mHeartShadow[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F1A48-801F1DB8 .text dMeter_heartColor__FP15sub_meter_class */
|
|
void dMeter_heartColor(sub_meter_class* i_Meter) {
|
|
f32 dVar8;
|
|
JUtility::TColor white(0xFF, 0xFF, 0xFF, 0xFF);
|
|
JUtility::TColor black(0x00, 0x00, 0x00, 0x00);
|
|
|
|
if (daPy_getPlayerActorClass()->checkSoupPowerUp() && dComIfGp_getMiniGameType() != 6) {
|
|
JUtility::TColor white2 = -1;
|
|
JUtility::TColor black2 = -1;
|
|
if (i_Meter->mHeartShadow[0].mUserArea == 0) {
|
|
i_Meter->mHeartShadow[0].mUserArea = 1;
|
|
}
|
|
if (i_Meter->mHeartShadow[1].mUserArea < 0x1d) {
|
|
i_Meter->mHeartShadow[1].mUserArea++;
|
|
} else {
|
|
i_Meter->mHeartShadow[1].mUserArea = 0;
|
|
}
|
|
if (i_Meter->mHeartShadow[1].mUserArea < 0xf) {
|
|
dVar8 = fopMsgM_valueIncrease(0xf, i_Meter->mHeartShadow[1].mUserArea, 0);
|
|
} else {
|
|
dVar8 = fopMsgM_valueIncrease(0xf, 0x1e - i_Meter->mHeartShadow[1].mUserArea, 0);
|
|
}
|
|
white2.r = ((f32)white.r - (((f32)white.r - 255.0f) * dVar8));
|
|
white2.g = ((f32)white.g - (((f32)white.g - 255.0f) * dVar8));
|
|
white2.b = ((f32)white.b - (((f32)white.b - 255.0f) * dVar8));
|
|
white2.a = 0xFF;
|
|
black2.r = ((f32)black.r - (((f32)black.r - 255.0f) * dVar8));
|
|
black2.g = ((f32)black.g - (((f32)black.g - 255.0f) * dVar8));
|
|
black2.b = ((f32)black.b - (((f32)black.b - 255.0f) * dVar8));
|
|
black2.a = 0x00;
|
|
for (s32 i = 0; i < 20; i++) {
|
|
((J2DPicture*)i_Meter->mHeart[i].pane)->setWhite(white2);
|
|
((J2DPicture*)i_Meter->mHeart[i].pane)->setBlack(black2);
|
|
}
|
|
} else {
|
|
if (i_Meter->mHeartShadow[0].mUserArea == 1) {
|
|
for (s32 i = 0; i < 20; i++) {
|
|
((J2DPicture*)i_Meter->mHeart[i].pane)->setWhite(white);
|
|
((J2DPicture*)i_Meter->mHeart[i].pane)->setBlack(black);
|
|
}
|
|
i_Meter->mHeartShadow[0].mUserArea = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F1DB8-801F1E60 .text dMeter_heartMove__FP15sub_meter_class */
|
|
void dMeter_heartMove(sub_meter_class* i_Meter) {
|
|
static bool flag = 0;
|
|
|
|
if (dComIfGp_getMiniGameType() == 6) {
|
|
dMeter_BattleLifeMove(i_Meter, flag);
|
|
flag = true;
|
|
} else if (flag) {
|
|
dMeter_heartInit(i_Meter);
|
|
flag = false;
|
|
} else {
|
|
dMeter_LifeMove(i_Meter, flag);
|
|
}
|
|
|
|
dMeter_heartColor(i_Meter);
|
|
dMeter_heartAlpha(i_Meter);
|
|
}
|
|
|
|
/* 801F1E60-801F1EBC .text dMeter_heartDraw__FP15sub_meter_class */
|
|
void dMeter_heartDraw(sub_meter_class* i_Meter) {
|
|
for (int i = 0; i < 20; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->mHeart[i]);
|
|
fopMsgM_setAlpha(&i_Meter->mHeartShadow[i]);
|
|
}
|
|
}
|
|
|
|
/* 801F1EBC-801F1F8C .text dMeter_weponInit__FP15sub_meter_class */
|
|
void dMeter_weponInit(sub_meter_class* i_Meter) {
|
|
JKRArchive* pArc;
|
|
const char* pFilename;
|
|
|
|
i_Meter->field_0x28d0.mUserArea = 0;
|
|
i_Meter->field_0x301a = 0;
|
|
dComIfGp_setAStatus(dActStts_BLANK_e);
|
|
if (dComIfGp_getAStatus() == dActStts_RETURN_e || dComIfGp_getAStatus() == dActStts_RETURN_e) {
|
|
pArc = dComIfGp_getMenuArchive();
|
|
} else {
|
|
pArc = dComIfGp_getActionIconArchive();
|
|
}
|
|
pFilename = dMeter_actionTex(dActStts_BLANK_e);
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[0], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2828.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x2860.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
i_Meter->field_0x2828.mUserArea = 0;
|
|
}
|
|
|
|
/* 801F1F8C-801F23B8 .text dMeter_weponMove__FP15sub_meter_class */
|
|
void dMeter_weponMove(sub_meter_class* i_Meter) {
|
|
s16 sVar1;
|
|
u8 uVar2;
|
|
int iVar3;
|
|
f32 dVar5;
|
|
|
|
if (dComIfGp_getAStatusForce() != dActStts_BLANK_e) {
|
|
dComIfGp_setAStatus(dComIfGp_getAStatusForce());
|
|
}
|
|
dMeter_weponChange(i_Meter);
|
|
if (dComIfGp_getDoStatus() == dActStts_BID_e) {
|
|
JUtility::TColor white = -1;
|
|
JUtility::TColor black = -1;
|
|
black.a = 0xFF;
|
|
black.b = 0xFF;
|
|
black.g = 0xFF;
|
|
black.r = 0xFF;
|
|
white.b = 0xFF;
|
|
white.a = 0x00;
|
|
i_Meter->field_0x1d38.mUserArea++;
|
|
if (i_Meter->field_0x1d38.mUserArea >= 0x14) {
|
|
i_Meter->field_0x1d38.mUserArea = 0;
|
|
}
|
|
iVar3 = (int)i_Meter->field_0x1d38.mUserArea;
|
|
if (iVar3 < 10) {
|
|
dVar5 = fopMsgM_valueIncrease(10, iVar3, 0);
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(10, 0x14 - iVar3, 0);
|
|
}
|
|
uVar2 = -f32(dVar5 * -255.0f);
|
|
white.g = uVar2;
|
|
white.r = uVar2;
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->setWhite(black);
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->setBlack(white);
|
|
i_Meter->field_0x1d38.mNowAlpha = i_Meter->field_0x1d00.mInitAlpha - (i_Meter->field_0x1d00.mInitAlpha - 0x78) * dVar5;
|
|
} else if (i_Meter->field_0x1d38.mUserArea != 0) {
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->setWhite(JUtility::TColor(0xFF, 0xFF, 0xFF, 0xFF));
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->setBlack(JUtility::TColor(0x00, 0x00, 0xFF, 0x00));
|
|
i_Meter->field_0x1d38.mNowAlpha = i_Meter->field_0x1d00.mInitAlpha;
|
|
i_Meter->field_0x1d38.mUserArea = 0;
|
|
}
|
|
if (dComIfGp_getDoStatus() == dActStts_ba_sake__dupe_31 || dComIfGp_getDoStatus() == dActStts_ba_nageru__dupe_2D ||
|
|
dComIfGp_getDoStatus() == dActStts_ba_motu__dupe_2E)
|
|
{
|
|
JUtility::TColor white = -1;
|
|
white.a = 0x00;
|
|
i_Meter->field_0x1e18[1].mUserArea++;
|
|
if (i_Meter->field_0x1e18[1].mUserArea >= 0x14) {
|
|
i_Meter->field_0x1e18[1].mUserArea = 0;
|
|
if (dComIfGp_getDoStatus() == dActStts_ba_nageru__dupe_2D) {
|
|
mDoAud_seStart(JA_SE_SEED_OK_BLINK);
|
|
#if VERSION > VERSION_DEMO
|
|
} else if (dComIfGp_getDoStatus() == dActStts_ba_motu__dupe_2E) {
|
|
mDoAud_seStart(JA_SE_MD_HARP_INDICATOR);
|
|
#endif
|
|
} else {
|
|
mDoAud_seStart(JA_SE_ITM_OMAMORI_BLINK);
|
|
}
|
|
}
|
|
iVar3 = (int)i_Meter->field_0x1e18[1].mUserArea;
|
|
if (iVar3 < 10) {
|
|
dVar5 = fopMsgM_valueIncrease(10, iVar3, 0);
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(10, 0x14 - iVar3, 0);
|
|
}
|
|
uVar2 = (dVar5 * 255.0f);
|
|
white.b = uVar2;
|
|
white.g = uVar2;
|
|
white.r = uVar2;
|
|
((J2DPicture*)i_Meter->field_0x1e18[1].pane)->setBlack(white);
|
|
} else if (dComIfGp_getDoStatus() == dActStts_PARRY_e) {
|
|
((J2DPicture*)i_Meter->field_0x1e18[1].pane)->setBlack(0x00000000);
|
|
}
|
|
sVar1 = i_Meter->field_0x28d0.mUserArea;
|
|
if (sVar1 != 0 && sVar1 <= 0xc) {
|
|
dMeter_weponAnime(i_Meter);
|
|
i_Meter->field_0x28d0.mUserArea++;
|
|
if (i_Meter->field_0x28d0.mUserArea > 0xc) {
|
|
i_Meter->field_0x28d0.mUserArea = 0;
|
|
}
|
|
}
|
|
dMeter_weponTrans(i_Meter);
|
|
dMeter_weponAlpha(i_Meter);
|
|
dComIfGp_setAStatusForce(dActStts_BLANK_e);
|
|
}
|
|
|
|
/* 801F23B8-801F2408 .text dMeter_weponDraw__FP15sub_meter_class */
|
|
void dMeter_weponDraw(sub_meter_class* i_Meter) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1d00);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2828);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2860);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2898);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x28d0);
|
|
}
|
|
|
|
/* 801F2408-801F2688 .text dMeter_weponChange__FP15sub_meter_class */
|
|
void dMeter_weponChange(sub_meter_class* i_Meter) {
|
|
const char* pFilename;
|
|
JKRArchive* pArc;
|
|
|
|
if (i_Meter->field_0x2828.mUserArea != 0) {
|
|
if (i_Meter->field_0x301a == 0x25) {
|
|
i_Meter->field_0x1d00.mUserArea = 0;
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->setWhite(0xFFFFFFFF);
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->setBlack(0x0000FF00);
|
|
}
|
|
if (dComIfGp_getAStatus() != dActStts_BLANK_e) {
|
|
if (dComIfGp_getAStatus() == dActStts_sword_01) {
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dMeter_weponTex();
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[0], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2828.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x2860.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
} else if (dComIfGp_getAStatus() == dActStts_boko_stick ||
|
|
dComIfGp_getAStatus() == dActStts_hatchet ||
|
|
dComIfGp_getAStatus() == dActStts_iron_club ||
|
|
dComIfGp_getAStatus() == dActStts_longsword ||
|
|
dComIfGp_getAStatus() == dActStts_spear ||
|
|
dComIfGp_getAStatus() == dActStts_spear__dupe_3C)
|
|
{
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dMeter_actionTex(dComIfGp_getAStatus());
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[0], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2828.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x2860.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
} else {
|
|
if (dComIfGp_getAStatus() == dActStts_RETURN_e || dComIfGp_getAStatus() == dActStts_RETURN_e) {
|
|
pArc = dComIfGp_getMenuArchive();
|
|
} else {
|
|
pArc = dComIfGp_getActionIconArchive();
|
|
}
|
|
pFilename = dMeter_actionTex(dComIfGp_getAStatus());
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[0], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2828.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x2860.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
((J2DPicture*)i_Meter->field_0x1d00.pane)->changeTexture(i_Meter->actionTex[0], 0);
|
|
}
|
|
}
|
|
i_Meter->field_0x2828.mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x301a != dComIfGp_getAStatus()) {
|
|
i_Meter->field_0x2828.mUserArea = 1;
|
|
i_Meter->field_0x28d0.mUserArea = 1;
|
|
i_Meter->field_0x301a = dComIfGp_getAStatus();
|
|
}
|
|
}
|
|
|
|
/* 801F2688-801F2818 .text dMeter_weponAnime__FP15sub_meter_class */
|
|
void dMeter_weponAnime(sub_meter_class* i_Meter) {
|
|
s32 uVar1;
|
|
f32 dVar2;
|
|
|
|
uVar1 = i_Meter->field_0x28d0.mUserArea;
|
|
if (uVar1 <= 7) {
|
|
dVar2 = ((uVar1 * 5.0f) / 7.0f);
|
|
} else if (uVar1 <= 10) {
|
|
dVar2 = (5.0f - ((uVar1 - 7) * 13.0f) / 3.0f);
|
|
} else {
|
|
dVar2 = -8.0f + (8.0f * (uVar1 - 10) / 2.0f);
|
|
}
|
|
i_Meter->field_0x1d00.pane->move(i_Meter->field_0x1d00.mPosTopLeft.x, i_Meter->field_0x1d00.mPosTopLeft.y + dVar2);
|
|
i_Meter->field_0x2828.pane->move(i_Meter->field_0x2828.mPosTopLeft.x, i_Meter->field_0x2828.mPosTopLeft.y + dVar2);
|
|
i_Meter->field_0x2860.pane->move(i_Meter->field_0x2860.mPosTopLeft.x, i_Meter->field_0x2860.mPosTopLeft.y + dVar2);
|
|
i_Meter->field_0x2898.pane->move(i_Meter->field_0x2898.mPosTopLeft.x, i_Meter->field_0x2898.mPosTopLeft.y + dVar2);
|
|
i_Meter->field_0x28d0.pane->move(i_Meter->field_0x28d0.mPosTopLeft.x, i_Meter->field_0x28d0.mPosTopLeft.y + dVar2);
|
|
}
|
|
|
|
/* 801F2818-801F337C .text dMeter_weponTrans__FP15sub_meter_class */
|
|
void dMeter_weponTrans(sub_meter_class* i_Meter) {
|
|
static s16 moveNowFrame = 0;
|
|
static s16 moveFlag = 0;
|
|
static s16 moveStatus = 0;
|
|
static f32 nowX = 0.0f;
|
|
static f32 nowY = 0.0f;
|
|
static f32 expX = 0.0f;
|
|
static f32 expY = 0.0f;
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(4) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e)) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK80_e) && dComIfGp_getScopeMesgStatus() != fopMsgStts_UNKB_e) ||
|
|
(((i_Meter->mStatusFlags & dMtrStts_UNK100_e) && dComIfGp_getAStatus() != dActStts_CANCEL_e) || dComIfGp_getAStatus() == dActStts_HIDDEN_e))
|
|
{
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 1;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK80000_e) {
|
|
if (moveStatus != 0xb) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 0xb;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK20_e) {
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1) {
|
|
if (moveStatus != 9) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 9;
|
|
} else if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) {
|
|
if (dMeter_Info.mButtonIconMode == 0 || dMeter_Info.mButtonIconMode == 1 || dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
if (moveStatus != 8) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 8;
|
|
} else if (dMeter_Info.mButtonIconMode == 7 || dMeter_Info.mButtonIconMode == 8 || dMeter_Info.mButtonIconMode == 9 || dMeter_Info.mButtonIconMode == 10) {
|
|
if (moveStatus != 10) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 10;
|
|
} else if (dMeter_Info.mButtonIconMode == 6) {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 1;
|
|
} else {
|
|
if (moveStatus != 9) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 9;
|
|
}
|
|
}
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK80_e) || (i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK200000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK10_e)))
|
|
{
|
|
if (moveStatus != 2) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 2;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) {
|
|
if (moveStatus != 3) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 3;
|
|
} else if (dMenu_flag() && (dMenu_getPushMenuButton() == 1 || (dMenu_getMenuStatus() == 1 && dMenu_getPushMenuButton() == 0))) {
|
|
if (dMenu_getItemMode() == 0) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 4;
|
|
} else {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 5;
|
|
}
|
|
} else if (dMenu_flag() && (dMenu_getPushMenuButton() == 2 || (dMenu_getMenuStatus() == 2 && dMenu_getPushMenuButton() == 0))) {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 5;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK800000_e) {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 5;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK40000_e) {
|
|
if (moveStatus != 6) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 6;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK400000_e) {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 5;
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK100_e) && dComIfGp_getAStatus() == dActStts_CANCEL_e) {
|
|
if (moveStatus != 7) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 7;
|
|
} else {
|
|
if (moveStatus != 0) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 2);
|
|
}
|
|
moveStatus = 0;
|
|
}
|
|
if (i_Meter->field_0x3026 != 0xf) {
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 2) == 0) {
|
|
if (moveNowFrame >= 5) {
|
|
moveNowFrame = 5;
|
|
moveFlag = 0;
|
|
dMeter_onBit8(&i_Meter->field_0x3026, 2);
|
|
switch (moveStatus) {
|
|
case 1:
|
|
nowX = 0.0f;
|
|
nowY = -200.0f;
|
|
break;
|
|
case 2:
|
|
nowX = g_meterHIO.field_0xa2;
|
|
nowY = g_meterHIO.field_0xaa;
|
|
break;
|
|
case 3:
|
|
nowX = g_meterHIO.field_0xb2;
|
|
nowY = g_meterHIO.field_0xba;
|
|
break;
|
|
case 4:
|
|
nowX = g_meterHIO.field_0xc2;
|
|
nowY = g_meterHIO.field_0xca;
|
|
break;
|
|
case 5:
|
|
nowX = g_meterHIO.field_0xd2;
|
|
nowY = g_meterHIO.field_0xda;
|
|
break;
|
|
case 6:
|
|
nowX = g_meterHIO.field_0xe2;
|
|
nowY = g_meterHIO.field_0xea;
|
|
break;
|
|
case 7:
|
|
nowX = g_meterHIO.field_0x102;
|
|
nowY = g_meterHIO.field_0x10a;
|
|
break;
|
|
case 8:
|
|
nowX = g_meterHIO.field_0x112;
|
|
nowY = g_meterHIO.field_0x11a;
|
|
break;
|
|
case 9:
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1) {
|
|
nowX = g_meterHIO.field_0x106;
|
|
nowY = g_meterHIO.field_0x10e;
|
|
} else if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) {
|
|
nowX = g_meterHIO.field_0x106 - 0x21;
|
|
nowY = g_meterHIO.field_0x10e - 4;
|
|
}
|
|
break;
|
|
case 10:
|
|
nowX = g_meterHIO.field_0x112 + 0x12;
|
|
nowY = g_meterHIO.field_0x11a + 3;
|
|
break;
|
|
case 0xb:
|
|
nowX = g_meterHIO.field_0xf2;
|
|
nowY = g_meterHIO.field_0xfa - 0x3c;
|
|
break;
|
|
default:
|
|
nowX = g_meterHIO.field_0xf2;
|
|
nowY = g_meterHIO.field_0xfa;
|
|
break;
|
|
}
|
|
} else {
|
|
moveNowFrame++;
|
|
}
|
|
}
|
|
} else {
|
|
if ((s32)moveNowFrame <= 0) {
|
|
moveNowFrame = 0;
|
|
} else {
|
|
moveNowFrame--;
|
|
}
|
|
}
|
|
|
|
f32 dVar6 = fopMsgM_valueIncrease(5, moveNowFrame, 0);
|
|
f32 x = nowX;
|
|
f32 dVar7 = (nowY + (dVar6 * (-200.0f - nowY)));
|
|
if (moveStatus == 10) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1d00, (x + expX) + 57.0f, (dVar7 + expY) + 9.0f);
|
|
} else {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1d00, x + expX, dVar7 + expY);
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2828, x, dVar7);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2860, x, dVar7);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2898, x, dVar7);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x28d0, x, dVar7);
|
|
}
|
|
|
|
/* 801F337C-801F36C0 .text dMeter_weponAlpha__FP15sub_meter_class */
|
|
void dMeter_weponAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar4;
|
|
|
|
static s16 alphaNowFrame = 0;
|
|
if (((i_Meter->mStatusFlags & dMtrStts_UNK400_e) && dComIfGp_getAStatus() == dActStts_sword_01) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK2000_e) && dComIfGp_getAStatus() != dActStts_SPEAK_e) ||
|
|
(((i_Meter->mStatusFlags & dMtrStts_UNK2_e) && dComIfGp_getAStatus() == dActStts_sword_01) &&
|
|
(strcmp(dComIfGp_getStartStageName(), "Ojhous") && strcmp(dComIfGp_getStartStageName(), "Orichh"))) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK8000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10000_e)))
|
|
{
|
|
if (alphaNowFrame > 3) {
|
|
alphaNowFrame--;
|
|
} else {
|
|
if (alphaNowFrame < 3) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 3;
|
|
}
|
|
}
|
|
} else {
|
|
if (!(i_Meter->mStatusFlags & dMtrStts_UNK2_e) ||
|
|
(dComIfGp_getAStatus() != dActStts_sword_01 && dComIfGp_getAStatus() != dActStts_BLANK_e && !dMenu_flag()) ||
|
|
(!strcmp(dComIfGp_getStartStageName(), "Ojhous") || (!strcmp(dComIfGp_getStartStageName(), "Orichh"))))
|
|
{
|
|
i_Meter->field_0x3024 |= 2;
|
|
}
|
|
if (alphaNowFrame < 5) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 5;
|
|
}
|
|
}
|
|
dVar4 = fopMsgM_valueIncrease(5, alphaNowFrame, 0);
|
|
if (dComIfGp_getAStatus() == dActStts_BLANK_e) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1d00);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2828);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2860);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2898, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x28d0, dVar4);
|
|
} else if (dComIfGp_getAStatus() == dActStts_sword_01 || dComIfGp_getAStatus() == dActStts_boko_stick || dComIfGp_getAStatus() == dActStts_hatchet ||
|
|
dComIfGp_getAStatus() == dActStts_iron_club || dComIfGp_getAStatus() == dActStts_longsword || dComIfGp_getAStatus() == dActStts_spear ||
|
|
dComIfGp_getAStatus() == dActStts_spear__dupe_3C)
|
|
{
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1d00);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2828, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2860, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2898, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x28d0, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2908, dVar4);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1d00, dVar4);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2828);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2860);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2898, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x28d0, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2908, dVar4);
|
|
}
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 2) != 0 && i_Meter->field_0x2828.mUserArea == 0) {
|
|
i_Meter->field_0x1d00.pane->show();
|
|
i_Meter->field_0x2828.pane->show();
|
|
i_Meter->field_0x2860.pane->show();
|
|
} else {
|
|
i_Meter->field_0x1d00.pane->hide();
|
|
i_Meter->field_0x2828.pane->hide();
|
|
i_Meter->field_0x2860.pane->hide();
|
|
}
|
|
}
|
|
|
|
/* 801F36C0-801F3770 .text dMeter_actionInit__FP15sub_meter_class */
|
|
void dMeter_actionInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x1e18[0].mUserArea = 0;
|
|
i_Meter->field_0x27b8.mUserArea = 0;
|
|
i_Meter->field_0x301b = 0;
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
JKRArchive* pArc = dComIfGp_getActionIconArchive();
|
|
const char* pFilename = dMeter_actionTex(dActStts_BLANK_e);
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[1], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x27b8.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
((J2DPicture*)i_Meter->field_0x27f0.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
}
|
|
|
|
/* 801F3770-801F37E0 .text dMeter_actionMove__FP15sub_meter_class */
|
|
void dMeter_actionMove(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_getDoStatusForce() != dActStts_BLANK_e) {
|
|
dComIfGp_setDoStatus(dComIfGp_getDoStatusForce());
|
|
} else {
|
|
dMeter_actionForce(i_Meter);
|
|
}
|
|
dMeter_actionChange(i_Meter);
|
|
dMeter_actionTrans(i_Meter);
|
|
dMeter_actionAlpha(i_Meter);
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
}
|
|
|
|
/* 801F37E0-801F386C .text dMeter_actionDraw__FP15sub_meter_class */
|
|
void dMeter_actionDraw(sub_meter_class* i_Meter) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1d38);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1e18[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1da8[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2748);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2780);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x27b8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x27f0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2908);
|
|
}
|
|
|
|
/* 801F386C-801F3B60 .text dMeter_actionForce__FP15sub_meter_class */
|
|
void dMeter_actionForce(sub_meter_class* i_Meter) {
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(4) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e)))
|
|
{
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
return;
|
|
}
|
|
|
|
if ((((i_Meter->mStatusFlags & dMtrStts_UNK8_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10_e)) || (i_Meter->mStatusFlags & dMtrStts_UNK800000_e)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20_e))
|
|
{
|
|
if (dMenu_getCollectMode() != 5) {
|
|
dComIfGp_setAStatus(dActStts_RETURN_e);
|
|
}
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) {
|
|
if (dMeter_Info.mButtonIconMode == 0 || dMeter_Info.mButtonIconMode == 1 || dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
if (dMeter_Info.mButtonIconMode == 0) {
|
|
dComIfGp_setDoStatus(dActStts_ba_zoom01);
|
|
} else if (dMeter_Info.mButtonIconMode == 1) {
|
|
dComIfGp_setDoStatus(dActStts_ba_zoom02);
|
|
} else if (dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
dComIfGp_setRStatus(dActStts_CHARTS_e);
|
|
return;
|
|
}
|
|
if (dMeter_Info.mButtonIconMode == 7 || dMeter_Info.mButtonIconMode == 8 || dMeter_Info.mButtonIconMode == 9 || dMeter_Info.mButtonIconMode == 10) {
|
|
if (dMeter_Info.mButtonIconMode == 10) {
|
|
dComIfGp_setDoStatus(dActStts_OPEN_e);
|
|
} else {
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
dComIfGp_setRStatus(dActStts_SEA_CHART_e);
|
|
return;
|
|
}
|
|
if (dMeter_Info.mButtonIconMode == 4) {
|
|
dComIfGp_setDoStatus(dActStts_CHOOSE_e);
|
|
dComIfGp_setRStatus(dActStts_BLANK_e);
|
|
return;
|
|
}
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
dComIfGp_setRStatus(dActStts_BLANK_e);
|
|
return;
|
|
}
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK800000_e) {
|
|
dComIfGp_setDoStatus(dActStts_CHOOSE_e);
|
|
}
|
|
return;
|
|
}
|
|
if (!(i_Meter->mStatusFlags & dMtrStts_UNK100_e)) {
|
|
return;
|
|
}
|
|
if (dMeter_Info.field_0x0 == 1) {
|
|
dComIfGp_setDoStatus(dActStts_NEXT_e);
|
|
} else if (dMeter_Info.field_0x0 == 3) {
|
|
dComIfGp_setDoStatus(dActStts_CHOOSE_e);
|
|
} else if (dMeter_Info.field_0x0 == 4) {
|
|
dComIfGp_setDoStatus(dActStts_RETURN_e);
|
|
} else {
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
if (dComIfGp_getDoStatusForce() != dActStts_BLANK_e) {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
}
|
|
if (dComIfGp_getAStatusForce() != dActStts_BLANK_e) {
|
|
dComIfGp_setAStatus(dComIfGp_getDoStatusForce());
|
|
dComIfGp_setAStatusForce(dActStts_BLANK_e);
|
|
}
|
|
}
|
|
|
|
/* 801F3B60-801F3CFC .text dMeter_actionChange__FP15sub_meter_class */
|
|
void dMeter_actionChange(sub_meter_class* i_Meter) {
|
|
const char* pFilename;
|
|
JKRArchive* pArc;
|
|
|
|
if (i_Meter->field_0x27b8.mUserArea != 0) {
|
|
if (dComIfGp_getDoStatus() == dActStts_BLANK_e) {
|
|
i_Meter->field_0x1e18[0].mUserArea = 1;
|
|
} else if (dComIfGp_getDoStatus() == dActStts_PARRY_e) {
|
|
mDoAud_seStart(JA_SE_SP_ATTACK_ON);
|
|
} else if (dComIfGp_getDoStatus() != dActStts_ba_sake__dupe_31 && dComIfGp_getDoStatus() != dActStts_ba_nageru__dupe_2D &&
|
|
dComIfGp_getDoStatus() != dActStts_ba_motu__dupe_2E)
|
|
{
|
|
if (dComIfGp_getDoStatus() == dActStts_bow_01) {
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dMeter_actionTex(dComIfGp_getDoStatus());
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[1], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x27b8.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
((J2DPicture*)i_Meter->field_0x27f0.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
} else {
|
|
if (dComIfGp_getDoStatus() == dActStts_RETURN_e || dComIfGp_getDoStatus() == dActStts_RETURN_e) {
|
|
pArc = dComIfGp_getMenuArchive();
|
|
} else {
|
|
pArc = dComIfGp_getActionIconArchive();
|
|
}
|
|
pFilename = dMeter_actionTex(dComIfGp_getDoStatus());
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[1], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x1d38.pane)->changeTexture(i_Meter->actionTex[1], 0);
|
|
i_Meter->field_0x1e18[0].mUserArea = 1;
|
|
}
|
|
}
|
|
i_Meter->field_0x301b = dComIfGp_getDoStatus();
|
|
i_Meter->field_0x27b8.mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x301b != dComIfGp_getDoStatus()) {
|
|
i_Meter->field_0x27b8.mUserArea = 1;
|
|
}
|
|
}
|
|
|
|
/* 801F3CFC-801F489C .text dMeter_actionTrans__FP15sub_meter_class */
|
|
void dMeter_actionTrans(sub_meter_class* i_Meter) {
|
|
f32 dVar7;
|
|
f32 x;
|
|
|
|
static s16 moveNowFrame = 0;
|
|
static s16 moveFlag = 0;
|
|
static s16 moveStatus = 0;
|
|
static f32 nowX = 0.0f;
|
|
static f32 nowY = 0.0f;
|
|
static f32 expX = 0.0f;
|
|
static f32 expY = 0.0f;
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(2) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80_e) || (i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK200000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK10_e)) ||
|
|
dComIfGp_getDoStatus() == dActStts_HIDDEN_e)
|
|
{
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 1;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK20_e) {
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1) {
|
|
if (moveStatus != 9) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 9;
|
|
} else {
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) {
|
|
if (dMeter_Info.mButtonIconMode == 0 || dMeter_Info.mButtonIconMode == 1 || dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
if (moveStatus != 8) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 8;
|
|
} else if (dMeter_Info.mButtonIconMode == 7 || dMeter_Info.mButtonIconMode == 8 || dMeter_Info.mButtonIconMode == 9 || dMeter_Info.mButtonIconMode == 10) {
|
|
if (moveStatus != 0xb) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 0xb;
|
|
} else if (dMeter_Info.mButtonIconMode == 0xb || dMeter_Info.mButtonIconMode == 6) {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 1;
|
|
} else {
|
|
if (moveStatus != 9) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 9;
|
|
}
|
|
}
|
|
}
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) {
|
|
if (moveStatus != 2) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 2;
|
|
} else if (dMenu_flag() && (dMenu_getPushMenuButton() == 1 || (dMenu_getMenuStatus() == 1 && dMenu_getPushMenuButton() == 0))) {
|
|
if (dMenu_getItemMode() == 0) {
|
|
if (moveStatus != 3) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 3;
|
|
} else {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 4;
|
|
}
|
|
} else if (dMenu_flag() && (dMenu_getPushMenuButton() == 2 || (dMenu_getMenuStatus() == 2 && dMenu_getPushMenuButton() == 0))) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 4;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK800000_e) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 4;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK40000_e) {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 5;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK100_e) {
|
|
if (moveStatus != 7) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 7;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK80000_e) {
|
|
if (moveStatus != 6) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 6;
|
|
} else if (i_Meter->mStatusFlags & dMtrStts_UNK400000_e) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 4;
|
|
} else {
|
|
if (moveStatus != 0) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 1);
|
|
}
|
|
moveStatus = 0;
|
|
}
|
|
if (i_Meter->field_0x3026 != 0xf) {
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 1) == 0) {
|
|
if (moveNowFrame >= 5) {
|
|
moveNowFrame = 5;
|
|
moveFlag = 0;
|
|
dMeter_onBit8(&i_Meter->field_0x3026, 1);
|
|
switch (moveStatus) {
|
|
case 1:
|
|
nowX = 0.0f;
|
|
nowY = -200.0f;
|
|
break;
|
|
case 2:
|
|
nowX = g_meterHIO.field_0xb0;
|
|
nowY = g_meterHIO.field_0xb8;
|
|
break;
|
|
case 3:
|
|
nowX = g_meterHIO.field_0xc0;
|
|
nowY = g_meterHIO.field_0xc8;
|
|
break;
|
|
case 4:
|
|
nowX = g_meterHIO.field_0xd0;
|
|
nowY = g_meterHIO.field_0xd8;
|
|
break;
|
|
case 5:
|
|
nowX = g_meterHIO.field_0xe0;
|
|
nowY = g_meterHIO.field_0xe8;
|
|
break;
|
|
case 6:
|
|
nowX = g_meterHIO.field_0xe4;
|
|
nowY = g_meterHIO.field_0xec;
|
|
break;
|
|
case 7:
|
|
nowX = g_meterHIO.field_0x100;
|
|
nowY = g_meterHIO.field_0x108;
|
|
break;
|
|
case 8:
|
|
nowX = g_meterHIO.field_0x110;
|
|
nowY = g_meterHIO.field_0x118;
|
|
break;
|
|
case 9:
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1) {
|
|
nowX = g_meterHIO.field_0x104;
|
|
nowY = g_meterHIO.field_0x10c;
|
|
} else {
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) {
|
|
nowX = g_meterHIO.field_0x104 - 10;
|
|
nowY = g_meterHIO.field_0x10c - 3;
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
nowX = g_meterHIO.field_0x110 + 0x2e;
|
|
nowY = g_meterHIO.field_0x118 - 0x17;
|
|
break;
|
|
case 0xb:
|
|
nowX = g_meterHIO.field_0x110 + 0x2a;
|
|
nowY = g_meterHIO.field_0x118 - 3;
|
|
break;
|
|
default:
|
|
nowX = g_meterHIO.field_0xf0;
|
|
nowY = g_meterHIO.field_0xf8;
|
|
break;
|
|
}
|
|
if (moveStatus == 2) {
|
|
expX = g_meterHIO.field_0xb4;
|
|
expY = g_meterHIO.field_0xbc;
|
|
} else {
|
|
expX = 0.0f;
|
|
expY = 0.0f;
|
|
}
|
|
} else {
|
|
moveNowFrame++;
|
|
}
|
|
}
|
|
} else {
|
|
if ((s32)moveNowFrame <= 0) {
|
|
moveNowFrame = 0;
|
|
} else {
|
|
moveNowFrame--;
|
|
}
|
|
}
|
|
dVar7 = fopMsgM_valueIncrease(5, moveNowFrame, 0);
|
|
x = nowX;
|
|
f32 dVar8 = (nowY + (dVar7 * (-200.0f - nowY)));
|
|
if (moveStatus == 10) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1d38, (x + 27.0f), (dVar8 + 14.0f));
|
|
} else {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1d38, x, dVar8);
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1e18[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1da8[i], x, dVar8);
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2748, x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2780, x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x27b8, x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x27f0, x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2908, x, dVar8);
|
|
}
|
|
|
|
/* 801F489C-801F4C80 .text dMeter_actionAlpha__FP15sub_meter_class */
|
|
void dMeter_actionAlpha(sub_meter_class* i_Meter) {
|
|
int iVar1;
|
|
daNpc_So_c* pfVar2;
|
|
f32 dVar2;
|
|
|
|
static s16 alphaNowFrame = 0;
|
|
if (((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) &&
|
|
(
|
|
dMeter_Info.mButtonIconMode == 2 ||
|
|
dMeter_Info.mButtonIconMode == 3 ||
|
|
dMeter_Info.mButtonIconMode == 7 ||
|
|
dMeter_Info.mButtonIconMode == 8 ||
|
|
dMeter_Info.mButtonIconMode == 9
|
|
))
|
|
{
|
|
if (alphaNowFrame > 3) {
|
|
alphaNowFrame--;
|
|
} else if (alphaNowFrame < 3) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 3;
|
|
}
|
|
} else {
|
|
i_Meter->field_0x3024 |= 1;
|
|
if (alphaNowFrame < 5) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 5;
|
|
}
|
|
}
|
|
dVar2 = fopMsgM_valueIncrease(5, (int)alphaNowFrame, 0);
|
|
if (dComIfGp_getMiniGameType() == 8) {
|
|
pfVar2 = (daNpc_So_c*)fopAcM_SearchByName(fpcNm_NPC_SO_e);
|
|
if (pfVar2 != NULL) {
|
|
iVar1 = pfVar2->getMiniGameRestArrow();
|
|
if (iVar1 < 10) {
|
|
dMeter_PaneHide(&i_Meter->field_0x2748);
|
|
} else {
|
|
dMeter_PaneShow(&i_Meter->field_0x2748);
|
|
dMeter_numberSet(i_Meter->field_0x2748.pane, iVar1 / 10 & 0xff);
|
|
}
|
|
dMeter_PaneShow(&i_Meter->field_0x2780);
|
|
dMeter_numberSet(i_Meter->field_0x2780.pane, iVar1 % 10 & 0xff);
|
|
}
|
|
} else {
|
|
i_Meter->field_0x2748.pane->hide();
|
|
i_Meter->field_0x2780.pane->hide();
|
|
}
|
|
if (dComIfGp_getDoStatus() == dActStts_BLANK_e) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1d38);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1e18[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1da8[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2748);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2780);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27b8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27f0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1e18[0], dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1da8[0], dVar2);
|
|
} else if (dComIfGp_getDoStatus() == dActStts_PARRY_e || dComIfGp_getDoStatus() == dActStts_ba_sake__dupe_31 ||
|
|
dComIfGp_getDoStatus() == dActStts_ba_nageru__dupe_2D || dComIfGp_getDoStatus() == dActStts_ba_motu__dupe_2E)
|
|
{
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1d38);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1e18[1], dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1da8[1], dVar2);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1e18[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1da8[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2748);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2780);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27b8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27f0);
|
|
} else if (dComIfGp_getDoStatus() == dActStts_bow_01) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1d38);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1e18[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1da8[1]);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1e18[0], dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1da8[0], dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2748, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2780, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x27b8, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x27f0, dVar2);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1d38, dVar2);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1e18[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1da8[1]);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1e18[0], dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1da8[0], dVar2);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2748);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2780);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27b8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x27f0);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2908, dVar2);
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 1) != 0 && i_Meter->field_0x27b8.mUserArea == 0) {
|
|
i_Meter->field_0x1d38.pane->show();
|
|
i_Meter->field_0x27b8.pane->show();
|
|
i_Meter->field_0x27f0.pane->show();
|
|
} else {
|
|
i_Meter->field_0x1d38.pane->hide();
|
|
i_Meter->field_0x2748.pane->hide();
|
|
i_Meter->field_0x2780.pane->hide();
|
|
i_Meter->field_0x27b8.pane->hide();
|
|
i_Meter->field_0x27f0.pane->hide();
|
|
}
|
|
}
|
|
|
|
/* 801F4C80-801F4CC4 .text dMeter_numberSet__FP7J2DPaneUc */
|
|
void dMeter_numberSet(J2DPane* param_1, u8 param_2) {
|
|
static const char* number[] = {
|
|
"count_num_0.bti",
|
|
"count_num_1.bti",
|
|
"count_num_2.bti",
|
|
"count_num_3.bti",
|
|
"count_num_4.bti",
|
|
"count_num_5.bti",
|
|
"count_num_6.bti",
|
|
"count_num_7.bti",
|
|
"count_num_8.bti",
|
|
"count_num_9.bti",
|
|
};
|
|
|
|
if (param_2 >= 10) {
|
|
param_2 = 0;
|
|
}
|
|
((J2DPicture*)param_1)->changeTexture(number[param_2], 0);
|
|
}
|
|
|
|
/* 801F4CC4-801F4E04 .text dMeter_numberColor__FP7J2DPaneUcUc */
|
|
void dMeter_numberColor(J2DPane* param_1, u8 param_2, u8 param_3) {
|
|
if (param_2 == 0) {
|
|
((J2DPicture*)param_1)->setWhite(0xb4b4b4ff);
|
|
((J2DPicture*)param_1)->setBlack(0x1e1e1e00);
|
|
} else if (param_2 == param_3) {
|
|
((J2DPicture*)param_1)->setWhite(0xffc832ff);
|
|
((J2DPicture*)param_1)->setBlack(0x1e1e1e00);
|
|
} else {
|
|
((J2DPicture*)param_1)->setWhite(0xffffffff);
|
|
((J2DPicture*)param_1)->setBlack(0x00000000);
|
|
}
|
|
}
|
|
|
|
/* 801F4E04-801F4FEC .text dMeter_xyInit__FP15sub_meter_class */
|
|
void dMeter_xyInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x2550[0].mUserArea = 0;
|
|
i_Meter->field_0x2f2c[0] = NULL;
|
|
i_Meter->field_0x2f2c[1] = NULL;
|
|
for (s32 i = 0; i < 8; i++) {
|
|
dMenu_baitNum[i] = dComIfGs_getBaitNum(i);
|
|
}
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
dComIfGp_setSelectItem(itemBtn);
|
|
i_Meter->field_0x3021[itemBtn] = dComIfGp_getSelectItem(itemBtn);
|
|
dMeter_xyItemChange(i_Meter, itemBtn);
|
|
}
|
|
}
|
|
|
|
/* 801F4FEC-801F5248 .text dMeter_xyMove__FP15sub_meter_class */
|
|
void dMeter_xyMove(sub_meter_class* i_Meter) {
|
|
bool bVar2;
|
|
bool bVar3;
|
|
cXyz local_38;
|
|
|
|
bVar2 = true;
|
|
bVar3 = false;
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
if (i_Meter->field_0x3021[itemBtn] != dComIfGp_getSelectItem(itemBtn)) {
|
|
dMeter_xyItemChange(i_Meter, itemBtn);
|
|
bVar2 = false;
|
|
#if VERSION == VERSION_DEMO
|
|
if (i_Meter->field_0x3021[itemBtn] == dItemNo_MAGIC_ARROW_e || i_Meter->field_0x3021[itemBtn] == dItemNo_LIGHT_ARROW_e)
|
|
#else
|
|
if (dComIfGp_getSelectItem(itemBtn) != dItemNo_MAGIC_ARROW_e && dComIfGp_getSelectItem(itemBtn) != dItemNo_LIGHT_ARROW_e)
|
|
#endif
|
|
{
|
|
i_Meter->field_0x2320[itemBtn].pane->hide();
|
|
i_Meter->field_0x23c8[itemBtn].pane->hide();
|
|
i_Meter->field_0x2470[itemBtn].pane->hide();
|
|
i_Meter->field_0x2320[itemBtn].mUserArea = 0;
|
|
}
|
|
i_Meter->field_0x3021[itemBtn] = dComIfGp_getSelectItem(itemBtn);
|
|
}
|
|
}
|
|
if (bVar2) {
|
|
dMeter_xyItemCountUp(i_Meter);
|
|
}
|
|
dMeter_xyTrans(i_Meter);
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
if (dComIfGp_getSelectItem(itemBtn) == dItemNo_MAGIC_ARROW_e || dComIfGp_getSelectItem(itemBtn) == dItemNo_LIGHT_ARROW_e) {
|
|
dMeter_xyBowLightAnime(i_Meter, itemBtn);
|
|
} else if (dComIfGp_getSelectItem(itemBtn) == dItemNo_FOREST_WATER_e) {
|
|
bVar3 = true;
|
|
local_38.set(i_Meter->field_0x2080[itemBtn].mPosCenter.x - 320.0f, i_Meter->field_0x2080[itemBtn].mPosCenter.y - 240.0f, 0.0f);
|
|
for (s32 j = 0; j < 2; j++) {
|
|
if (i_Meter->field_0x2f2c[j] != NULL) {
|
|
i_Meter->field_0x2f2c[j]->setGlobalTranslation(local_38.x, local_38.y, local_38.z);
|
|
i_Meter->field_0x2f2c[j]->playDrawParticle();
|
|
i_Meter->field_0x2f2c[j]->setGlobalAlpha(i_Meter->field_0x2080[itemBtn].mNowAlpha);
|
|
} else {
|
|
i_Meter->field_0x2f2c[j] = dComIfGp_particle_set2DmenuFore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_38);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!bVar3) {
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Meter->field_0x2f2c[i] != NULL) {
|
|
i_Meter->field_0x2f2c[i]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f2c[i]->quitImmortalEmitter();
|
|
i_Meter->field_0x2f2c[i] = NULL;
|
|
}
|
|
}
|
|
}
|
|
dMeter_xyAlpha(i_Meter);
|
|
}
|
|
|
|
/* 801F5248-801F5308 .text dMeter_xyDraw__FP15sub_meter_class */
|
|
void dMeter_xyDraw(sub_meter_class* i_Meter) {
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1fd8[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1f30[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2080[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2128[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2320[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x23c8[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2470[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2518);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2550[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x25c0[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2630[i]);
|
|
}
|
|
}
|
|
|
|
/* 801F5308-801F543C .text dMeter_xyEquipItem__Fi */
|
|
int dMeter_xyEquipItem(int i_itemBtn) {
|
|
int invIdx = dComIfGs_getSelectItem(i_itemBtn);
|
|
u8 itemNo = dComIfGs_getItem(invIdx);
|
|
u8 beastIdx = 0;
|
|
switch (itemNo) {
|
|
case dItemNo_SKULL_NECKLACE_e:
|
|
beastIdx = dBeastIdx_SKULL_NECKLACE_e;
|
|
break;
|
|
case dItemNo_BOKOBABA_SEED_e:
|
|
beastIdx = dBeastIdx_BOKOBABA_SEED_e;
|
|
break;
|
|
case dItemNo_GOLDEN_FEATHER_e:
|
|
beastIdx = dBeastIdx_GOLDEN_FEATHER_e;
|
|
break;
|
|
case dItemNo_KNIGHTS_CREST_e:
|
|
beastIdx = dBeastIdx_KNIGHTS_CREST_e;
|
|
break;
|
|
case dItemNo_RED_JELLY_e:
|
|
beastIdx = dBeastIdx_RED_JELLY_e;
|
|
break;
|
|
case dItemNo_GREEN_JELLY_e:
|
|
beastIdx = dBeastIdx_GREEN_JELLY_e;
|
|
break;
|
|
case dItemNo_BLUE_JELLY_e:
|
|
beastIdx = dBeastIdx_BLUE_JELLY_e;
|
|
break;
|
|
case dItemNo_JOY_PENDANT_e:
|
|
beastIdx = dBeastIdx_JOY_PENDANT_e;
|
|
break;
|
|
}
|
|
return beastIdx;
|
|
}
|
|
|
|
/* 801F543C-801F57B0 .text dMeter_xyItemNumberSet__FP15sub_meter_classi */
|
|
void dMeter_xyItemNumberSet(sub_meter_class* i_Meter, int i_itemBtn) {
|
|
if (dComIfGp_getSelectItem(i_itemBtn) == dItemNo_PICTO_BOX_e || dComIfGp_getSelectItem(i_itemBtn) == dItemNo_DELUXE_PICTO_BOX_e) {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
dMeter_numberSet(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getPictureNum());
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getPictureNum(), 3);
|
|
} else if (dComIfGp_getSelectItem(i_itemBtn) == dItemNo_BOW_e ||
|
|
(dComIfGp_getSelectItem(i_itemBtn) == dItemNo_MAGIC_ARROW_e || dComIfGp_getSelectItem(i_itemBtn) == dItemNo_LIGHT_ARROW_e))
|
|
{
|
|
dMeter_PaneShow(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
if (dComIfGs_getArrowNum() < 10) {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
} else {
|
|
dMeter_numberSet(i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getArrowNum() / 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getArrowNum(), dComIfGs_getArrowMax());
|
|
}
|
|
dMeter_numberSet(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getArrowNum() % 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getArrowNum(), dComIfGs_getArrowMax());
|
|
} else if (dComIfGp_getSelectItem(i_itemBtn) == dItemNo_BOMB_BAG_e) {
|
|
dMeter_PaneShow(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
if (dComIfGs_getBombNum() < 10) {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
} else {
|
|
dMeter_numberSet(i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getBombNum() / 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getBombNum(), dComIfGs_getBombMax());
|
|
}
|
|
dMeter_numberSet(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBombNum() % 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBombNum(), dComIfGs_getBombMax());
|
|
} else if (dComIfGs_getSelectItem(i_itemBtn) >= dInvSlot_BeastFirst_e && (dComIfGs_getSelectItem(i_itemBtn) <= dInvSlot_BeastLast_e - 1)) {
|
|
dMeter_PaneShow(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
int beastIdx = dMeter_xyEquipItem(i_itemBtn);
|
|
if (dComIfGs_getBeastNum(beastIdx) < 10) {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
} else {
|
|
dMeter_numberSet(i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getBeastNum(beastIdx) / 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1f30[i_itemBtn].pane, dComIfGs_getBeastNum(beastIdx), 99);
|
|
}
|
|
dMeter_numberSet(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBeastNum(beastIdx) % 10);
|
|
dMeter_numberColor((J2DPicture*)i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBeastNum(beastIdx), 99);
|
|
} else {
|
|
if (dComIfGs_getSelectItem(i_itemBtn) >= dInvSlot_BaitFirst_e && (dComIfGs_getSelectItem(i_itemBtn) <= dInvSlot_BaitLast_e - 1)) {
|
|
if (dComIfGp_getSelectItem(i_itemBtn) == dItemNo_HYOI_PEAR_e) {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
} else {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
dMeter_numberSet(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBaitNum(dComIfGs_getSelectItem(i_itemBtn) - dInvSlot_BaitFirst_e));
|
|
dMeter_numberColor(i_Meter->field_0x1fd8[i_itemBtn].pane, dComIfGs_getBaitNum(dComIfGs_getSelectItem(i_itemBtn) - dInvSlot_BaitFirst_e), 3);
|
|
}
|
|
} else {
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[i_itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x1fd8[i_itemBtn]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F57B0-801F58E4 .text dMeter_xyBowLightAnime__FP15sub_meter_classi */
|
|
void dMeter_xyBowLightAnime(sub_meter_class* i_Meter, int param_2) {
|
|
/* Nonmatching */
|
|
int iVar2;
|
|
f32 dVar4;
|
|
f32 dVar5;
|
|
f32 lVar6;
|
|
|
|
i_Meter->field_0x2320[0].mUserArea++;
|
|
if (i_Meter->field_0x2320[param_2].mUserArea >= 0x78) {
|
|
i_Meter->field_0x2320[param_2].mUserArea = 0;
|
|
}
|
|
iVar2 = (int)i_Meter->field_0x2320[param_2].mUserArea;
|
|
if (iVar2 < 0x3c) {
|
|
dVar4 = fopMsgM_valueIncrease(0x3c, iVar2, 0);
|
|
} else {
|
|
dVar4 = fopMsgM_valueIncrease(0x3c, 0x78 - iVar2, 0);
|
|
}
|
|
dVar5 = (1.0f - (dVar4 * 0.39999998f));
|
|
lVar6 = (i_Meter->field_0x2320[0].mInitAlpha - ((i_Meter->field_0x2320[0].mInitAlpha - 50.0f) * dVar4));
|
|
for (s32 i = 0; i < 3; i++) {
|
|
// TODO: this indexing seems wrong. field_0x2320 may be a 2D array of 3x3
|
|
fopMsgM_paneScaleXY(&(&i_Meter->field_0x2320[param_2])[i*3], dVar5);
|
|
(&i_Meter->field_0x2320[param_2].mNowAlpha)[i] = lVar6;
|
|
}
|
|
}
|
|
|
|
/* 801F58E4-801F5C98 .text dMeter_xyItemCountUp__FP15sub_meter_class */
|
|
void dMeter_xyItemCountUp(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
u8 uVar2;
|
|
bool bVar3;
|
|
s16 sVar4;
|
|
s16 uVar5;
|
|
|
|
bVar3 = false;
|
|
static u8 arrowMax = dComIfGs_getArrowMax();
|
|
static u8 bombMax = dComIfGs_getBombMax();
|
|
if (dComIfGp_getItemPictureNumCount() != 0) {
|
|
sVar4 = dComIfGs_getPictureNum() + dComIfGp_getItemPictureNumCount();
|
|
dComIfGp_clearItemPictureNumCount();
|
|
if (sVar4 < 0) {
|
|
sVar4 = 0;
|
|
}
|
|
if (sVar4 > 3) {
|
|
sVar4 = 3;
|
|
}
|
|
dComIfGs_setPictureNum(sVar4);
|
|
bVar3 = true;
|
|
}
|
|
if (((dComIfGs_checkGetItem(dItemNo_BOW_e) || dComIfGs_checkGetItem(dItemNo_MAGIC_ARROW_e) || dComIfGs_checkGetItem(dItemNo_LIGHT_ARROW_e)) &&
|
|
dComIfGp_getItemArrowNumCount() != 0) ||
|
|
arrowMax != dComIfGs_getArrowMax())
|
|
{
|
|
if (g_meterHIO.field_0x62 != 0) {
|
|
dComIfGp_clearItemArrowNumCount();
|
|
}
|
|
uVar5 = dComIfGs_getArrowNum() + dComIfGp_getItemArrowNumCount();
|
|
dComIfGp_clearItemArrowNumCount();
|
|
if (uVar5 < 0) {
|
|
uVar5 = 0;
|
|
}
|
|
if (uVar5 > dComIfGs_getArrowMax()) {
|
|
uVar5 = dComIfGs_getArrowMax();
|
|
}
|
|
dComIfGs_setArrowNum(uVar5);
|
|
arrowMax = dComIfGs_getArrowMax();
|
|
bVar3 = 1;
|
|
}
|
|
if ((dComIfGs_checkGetItem(dItemNo_BOMB_BAG_e) && dComIfGp_getItemBombNumCount() != 0) || bombMax != dComIfGs_getBombMax()) {
|
|
if (g_meterHIO.field_0x63 != 0) {
|
|
g_dComIfG_gameInfo.play.mItemBombNumCount = 0;
|
|
}
|
|
s16 uVar5_2 = dComIfGs_getBombNum() + dComIfGp_getItemBombNumCount();
|
|
g_dComIfG_gameInfo.play.mItemBombNumCount = 0;
|
|
if (uVar5_2 < 0) {
|
|
uVar5_2 = 0;
|
|
}
|
|
if (uVar5_2 > dComIfGs_getBombMax()) {
|
|
uVar5_2 = dComIfGs_getBombMax();
|
|
}
|
|
dComIfGs_setBombNum(uVar5_2);
|
|
bombMax = dComIfGs_getBombMax();
|
|
bVar3 = 1;
|
|
}
|
|
for (int beastIdx = 0; beastIdx < dBeastIdx_COUNT_e; beastIdx++) {
|
|
if (dComIfGp_getItemBeastNumCount(beastIdx) != 0) {
|
|
sVar4 = dComIfGs_getBeastNum(beastIdx) + dComIfGp_getItemBeastNumCount(beastIdx);
|
|
dComIfGp_clearItemBeastNumCount(beastIdx);
|
|
if (sVar4 <= 0) {
|
|
dComIfGs_setBeastNum(beastIdx, 0);
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
if (dComIfGp_getSelectItem(itemBtn) == fopMsgM_itemNumIdx(beastIdx + dInvSlot_BeastFirst_e)) {
|
|
dMeter_PaneHide(&i_Meter->field_0x2080[itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x2128[itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x1f30[itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x1fd8[itemBtn]);
|
|
}
|
|
}
|
|
int itemNo = fopMsgM_itemNumIdx(beastIdx + dInvSlot_BeastFirst_e);
|
|
dComIfGs_setBeastItemEmpty(itemNo);
|
|
bVar3 = true;
|
|
} else {
|
|
if (sVar4 > 99) {
|
|
sVar4 = 99;
|
|
}
|
|
dComIfGs_setBeastNum(beastIdx, sVar4);
|
|
bVar3 = true;
|
|
}
|
|
}
|
|
if (dMenu_baitNum[beastIdx] != dComIfGs_getBaitNum(beastIdx)) {
|
|
dMenu_baitNum[beastIdx] = dComIfGs_getBaitNum(beastIdx);
|
|
bVar3 = true;
|
|
}
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
if (dComIfGp_getSelectItem(itemBtn) == dItemNo_BIRD_BAIT_5_e) {
|
|
bVar3 = true;
|
|
}
|
|
}
|
|
#endif
|
|
if (bVar3) {
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
dMeter_xyItemNumberSet(i_Meter, itemBtn);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F5C98-801F5FDC .text dMeter_xyItemChange__FP15sub_meter_classi */
|
|
void dMeter_xyItemChange(sub_meter_class* i_Meter, int i_itemBtn) {
|
|
JKRArchive* pArc;
|
|
const char* pFilename;
|
|
|
|
if (dComIfGp_getSelectItem(i_itemBtn) != dItemNo_NONE_e) {
|
|
if (dComIfGs_getSelectItem(i_itemBtn) >= dInvSlot_ReserveFirst_e) {
|
|
dMeter_PaneShow(&i_Meter->field_0x2080[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]);
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn));
|
|
JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
} else if (dComIfGs_getSelectItem(i_itemBtn) >= dInvSlot_BaitFirst_e) {
|
|
dMeter_PaneShow(&i_Meter->field_0x2080[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]);
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn));
|
|
JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
} else if (dComIfGs_getSelectItem(i_itemBtn) >= dInvSlot_BeastFirst_e) {
|
|
dMeter_PaneShow(&i_Meter->field_0x2080[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]);
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn));
|
|
JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
} else {
|
|
dMeter_PaneShow(&i_Meter->field_0x2080[i_itemBtn]);
|
|
dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]);
|
|
u8 uVar2 = dComIfGp_getSelectItem(i_itemBtn);
|
|
u8 var_r4 = uVar2;
|
|
if (uVar2 == dItemNo_MAGIC_ARROW_e) {
|
|
i_Meter->field_0x2320[i_itemBtn].pane->show();
|
|
i_Meter->field_0x23c8[i_itemBtn].pane->show();
|
|
i_Meter->field_0x2470[i_itemBtn].pane->hide();
|
|
var_r4 = dItemNo_BOW_e;
|
|
} else if (uVar2 == dItemNo_LIGHT_ARROW_e) {
|
|
i_Meter->field_0x2320[i_itemBtn].pane->show();
|
|
i_Meter->field_0x23c8[i_itemBtn].pane->show();
|
|
i_Meter->field_0x2470[i_itemBtn].pane->show();
|
|
var_r4 = dItemNo_BOW_e;
|
|
}
|
|
if (var_r4 == dItemNo_MAGIC_ARROW_e || var_r4 == dItemNo_LIGHT_ARROW_e) {
|
|
var_r4 = dItemNo_BOW_e;
|
|
}
|
|
pArc = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(var_r4);
|
|
JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0);
|
|
}
|
|
} else {
|
|
dMeter_PaneHide(&i_Meter->field_0x2080[i_itemBtn]);
|
|
dMeter_PaneHide(&i_Meter->field_0x2128[i_itemBtn]);
|
|
}
|
|
dMeter_xyItemNumberSet(i_Meter, i_itemBtn);
|
|
}
|
|
|
|
/* 801F5FDC-801F6084 .text dMeter_xyRotateZ__FP18fopMsgM_pane_classff */
|
|
void dMeter_xyRotateZ(fopMsgM_pane_class* param_1, f32 param_2, f32 param_3) {
|
|
s32 x = param_1->mSize.x * 0.5f;
|
|
s32 y = param_1->mSize.y * 0.5f;
|
|
param_1->pane->rotate(x, y, ROTATE_Z, param_2 + param_3);
|
|
}
|
|
|
|
/* 801F6084-801F69A0 .text dMeter_xyAlpha__FP15sub_meter_class */
|
|
void dMeter_xyAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar10;
|
|
f32 dVar11;
|
|
f32 dVar12;
|
|
|
|
static s16 alphaNowFrame[] = {0x0000, 0x0000, 0x0000};
|
|
|
|
if (
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK4000_e) &&
|
|
(!(i_Meter->mStatusFlags & dMtrStts_UNK40_e) || !dComIfGp_event_checkHind(1)) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK10_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) &&
|
|
(!(i_Meter->mStatusFlags & dMtrStts_UNK20_e) || (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) != 1)) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK80_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK40000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK80000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)
|
|
)
|
|
{
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK8_e) {
|
|
for (s32 i = 0; i < 3; i++) {
|
|
if (alphaNowFrame[i] < 5) {
|
|
alphaNowFrame[i]++;
|
|
} else {
|
|
alphaNowFrame[i] = 5;
|
|
}
|
|
}
|
|
} else if (!(i_Meter->mStatusFlags & dMtrStts_UNK8_e) &&
|
|
(((i_Meter->mStatusFlags & dMtrStts_UNK800_e) || (i_Meter->mStatusFlags & dMtrStts_UNK2000_e)) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK8000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK200_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10000_e)))))
|
|
{
|
|
for (s32 i = 0; i < 3; i++) {
|
|
if (alphaNowFrame[i] > 3) {
|
|
alphaNowFrame[i]--;
|
|
} else {
|
|
if (alphaNowFrame[i] < 3) {
|
|
alphaNowFrame[i]++;
|
|
} else {
|
|
alphaNowFrame[i] = 3;
|
|
}
|
|
}
|
|
}
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) {
|
|
for (s32 i = 0; i < 3; i++) {
|
|
if (i == 1) {
|
|
if (alphaNowFrame[i] < 5) {
|
|
alphaNowFrame[i]++;
|
|
} else {
|
|
alphaNowFrame[i] = 5;
|
|
}
|
|
} else if ((s32)alphaNowFrame[i] > 0) {
|
|
alphaNowFrame[i] = alphaNowFrame[i] + -1;
|
|
} else {
|
|
alphaNowFrame[i] = 0;
|
|
}
|
|
}
|
|
} else {
|
|
for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) {
|
|
if (((i_Meter->mStatusFlags & dMtrStts_UNK1000_e) && dComIfGp_getSelectItem(itemBtn) != dItemNo_GRAPPLING_HOOK_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK80_e) && dComIfGp_getSelectItem(itemBtn) != dItemNo_TELESCOPE_e) ||
|
|
(
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) && (
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_PICTO_BOX_e || dComIfGp_getSelectItem(itemBtn) != dItemNo_DELUXE_PICTO_BOX_e)
|
|
) ||
|
|
(
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK400_e) &&
|
|
dComIfGp_getMiniGameType() != 1 &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SAIL_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_TELESCOPE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_WIND_WAKER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GRAPPLING_HOOK_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BOOMERANG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_TINGLE_TUNER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_PICTO_BOX_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_DELUXE_PICTO_BOX_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_MAGIC_ARMOR_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BAIT_BAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HYOI_PEAR_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BIRD_BAIT_5_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BOW_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_MAGIC_ARROW_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_LIGHT_ARROW_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BOMB_BAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HOOKSHOT_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_EMPTY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_RED_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GREEN_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BLUE_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HALF_SOUP_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SOUP_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_WATER_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FAIRY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FIREFLY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FOREST_WATER_e
|
|
) ||
|
|
(
|
|
dComIfGp_getMiniGameType() == 1 &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SAIL_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_TELESCOPE_e
|
|
) ||
|
|
(
|
|
dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e &&
|
|
(
|
|
(strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0) ||
|
|
(strcmp(dComIfGp_getStartStageName(), "Xboss1") == 0) ||
|
|
(strcmp(dComIfGp_getStartStageName(), "Xboss2") == 0) ||
|
|
(strcmp(dComIfGp_getStartStageName(), "Xboss3") == 0)
|
|
) &&
|
|
(
|
|
dComIfGp_getSelectItem(itemBtn) == dItemNo_WATER_BOTTLE_e ||
|
|
dComIfGp_getSelectItem(itemBtn) == dItemNo_FIREFLY_BOTTLE_e ||
|
|
dComIfGp_getSelectItem(itemBtn) == dItemNo_FOREST_WATER_e
|
|
)
|
|
) ||
|
|
(
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK2_e) &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_TINGLE_TUNER_e &&
|
|
(
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_WIND_WAKER_e ||
|
|
(strcmp(dComIfGp_getStartStageName(), "Otkura") != 0)) &&
|
|
(
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GRAPPLING_HOOK_e ||
|
|
(strcmp(dComIfGp_getStartStageName(), "Abesso") != 0)
|
|
) &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_PICTO_BOX_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_DELUXE_PICTO_BOX_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SPOILS_BAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SKULL_NECKLACE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BOKOBABA_SEED_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GOLDEN_FEATHER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_KNIGHTS_CREST_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_RED_JELLY_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GREEN_JELLY_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BLUE_JELLY_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_JOY_PENDANT_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BAIT_BAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BIRD_BAIT_5_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HYOI_PEAR_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_EMPTY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_RED_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_GREEN_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BLUE_POTION_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HALF_SOUP_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SOUP_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_WATER_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FAIRY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FIREFLY_BOTTLE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FOREST_WATER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_DELIVERY_BAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_TOWN_FLOWER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SEA_FLOWER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_EXOTIC_FLOWER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_HEROS_FLAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BIG_CATCH_FLAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_BIG_SALE_FLAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_PINWHEEL_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SICKLE_MOON_FLAG_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SKULL_TOWER_IDOL_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FOUNTAIN_IDOL_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_POSTMAN_STATUE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_SHOP_GURU_STATUE_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FATHER_LETTER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_NOTE_TO_MOM_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_MAGGIES_LETTER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_MOBLINS_LETTER_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_CABANA_DEED_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_COMPLIMENTARY_ID_e &&
|
|
dComIfGp_getSelectItem(itemBtn) != dItemNo_FILL_UP_COUPON_e
|
|
)
|
|
)
|
|
{
|
|
if (alphaNowFrame[itemBtn] > 3) {
|
|
alphaNowFrame[itemBtn]--;
|
|
} else if (alphaNowFrame[itemBtn] < 3) {
|
|
alphaNowFrame[itemBtn]++;
|
|
} else {
|
|
alphaNowFrame[itemBtn] = 3;
|
|
}
|
|
} else {
|
|
if (alphaNowFrame[itemBtn] < 5) {
|
|
alphaNowFrame[itemBtn]++;
|
|
} else {
|
|
alphaNowFrame[itemBtn] = 5;
|
|
}
|
|
switch (itemBtn) {
|
|
case 0:
|
|
i_Meter->field_0x3024 |= 4;
|
|
break;
|
|
case 1:
|
|
i_Meter->field_0x3024 |= 8;
|
|
break;
|
|
case 2:
|
|
i_Meter->field_0x3024 |= 0x20;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dVar10 = fopMsgM_valueIncrease(5, alphaNowFrame[0], 0);
|
|
dVar11 = fopMsgM_valueIncrease(5, alphaNowFrame[1], 0);
|
|
dVar12 = fopMsgM_valueIncrease(5, alphaNowFrame[2], 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1fd8[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1f30[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2080[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2128[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2550[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x25c0[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2630[0], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2550[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x25c0[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2630[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1fd8[2], dVar12);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1f30[2], dVar12);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2080[2], dVar12);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2128[2], dVar12);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2518, dVar12);
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1fd8[1], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1f30[1], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2080[1], dVar10);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2128[1], dVar10);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2320[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x23c8[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2470[i]);
|
|
}
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1fd8[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1f30[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2080[1], dVar11);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2128[1], dVar11);
|
|
}
|
|
}
|
|
|
|
/* 801F69A0-801F7034 .text dMeter_xyTrans__FP15sub_meter_class */
|
|
void dMeter_xyTrans(sub_meter_class* i_Meter) {
|
|
static s16 moveNowFrame = 0;
|
|
static s16 moveFlag = 0;
|
|
static s16 moveStatus = 0;
|
|
static f32 nowX = 0.0f;
|
|
static f32 nowY = 0.0f;
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(1)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100_e) ||
|
|
(((dMenu_flag() && (dMenu_getPushMenuButton() == 2 || (dMenu_getMenuStatus() == 2 && dMenu_getPushMenuButton() == 0))) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800000_e)) ||
|
|
(((((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80_e)) ||
|
|
(((i_Meter->mStatusFlags & dMtrStts_UNK100000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK200000_e)) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK20000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80000_e))))
|
|
) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK400000_e))))
|
|
{
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 1;
|
|
} else if (dMenu_flag() && (dMenu_getPushMenuButton() == 1 || (dMenu_getMenuStatus() == 1 && dMenu_getPushMenuButton() == 0))) {
|
|
if (dMenu_getItemMode() == 0) {
|
|
if (moveStatus != 2) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 2;
|
|
} else {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 1;
|
|
}
|
|
} else {
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK20_e) {
|
|
if (dMeter_Info.mButtonIconMode == 0 || dMeter_Info.mButtonIconMode == 1 || dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
if (moveStatus != 3) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 3;
|
|
} else if (dMeter_Info.mButtonIconMode == 7 || dMeter_Info.mButtonIconMode == 8 || dMeter_Info.mButtonIconMode == 9 || dMeter_Info.mButtonIconMode == 10) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 4;
|
|
} else {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 1;
|
|
}
|
|
} else {
|
|
if (moveStatus != 0) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 4);
|
|
}
|
|
moveStatus = 0;
|
|
}
|
|
}
|
|
if (i_Meter->field_0x3026 != 0xf) {
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 4) == 0) {
|
|
if (moveNowFrame >= 5) {
|
|
moveNowFrame = 5;
|
|
moveFlag = 0;
|
|
dMeter_onBit8(&i_Meter->field_0x3026, 4);
|
|
switch (moveStatus) {
|
|
case 1:
|
|
nowX = 0.0f;
|
|
nowY = -200.0f;
|
|
break;
|
|
case 2:
|
|
nowX = g_meterHIO.field_0xc4;
|
|
nowY = g_meterHIO.field_0xcc;
|
|
break;
|
|
case 3:
|
|
nowX = g_meterHIO.field_0x114;
|
|
nowY = g_meterHIO.field_0x11c;
|
|
break;
|
|
case 4:
|
|
nowX = (f32)(g_meterHIO.field_0x114 + 0x28);
|
|
nowY = g_meterHIO.field_0x11c;
|
|
break;
|
|
default:
|
|
nowX = g_meterHIO.field_0xf4;
|
|
nowY = g_meterHIO.field_0xfc;
|
|
break;
|
|
}
|
|
} else {
|
|
moveNowFrame++;
|
|
}
|
|
}
|
|
} else {
|
|
if ((s32)moveNowFrame <= 0) {
|
|
moveNowFrame = 0;
|
|
} else {
|
|
moveNowFrame--;
|
|
}
|
|
}
|
|
f32 dVar7 = fopMsgM_valueIncrease(5, moveNowFrame, 0);
|
|
f32 x = nowX;
|
|
f32 dVar8 = (nowY + (dVar7 * (-200.0f - nowY)));
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1fd8[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1f30[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2080[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2128[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2320[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x23c8[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2470[i], x, dVar8);
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2518, x, dVar8);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2550[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x25c0[i], x, dVar8);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2630[i], x, dVar8);
|
|
}
|
|
}
|
|
|
|
/* 801F7034-801F70E0 .text dMeter_rInit__FP15sub_meter_class */
|
|
void dMeter_rInit(sub_meter_class* i_Meter) {
|
|
JKRArchive* pArc;
|
|
const char* pFilename;
|
|
|
|
i_Meter->field_0x26d8.mUserArea = 0;
|
|
i_Meter->field_0x1cc8.mUserArea = 0;
|
|
i_Meter->field_0x301c = 0;
|
|
dComIfGp_setRStatus(dActStts_BLANK_e);
|
|
if (dComIfGp_getRStatus() == dActStts_RETURN_e || dComIfGp_getRStatus() == dActStts_RETURN_e) {
|
|
pArc = dComIfGp_getMenuArchive();
|
|
} else {
|
|
pArc = dComIfGp_getActionIconArchive();
|
|
}
|
|
pFilename = dMeter_actionTex(dActStts_BLANK_e);
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[2], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x1cc8.pane)->changeTexture(i_Meter->actionTex[2], 0);
|
|
}
|
|
|
|
/* 801F70E0-801F71F4 .text dMeter_rMove__FP15sub_meter_class */
|
|
void dMeter_rMove(sub_meter_class* i_Meter) {
|
|
const char* pFilename;
|
|
JKRArchive* pArc;
|
|
|
|
if (dComIfGp_getRStatusForce() != dActStts_BLANK_e) {
|
|
dComIfGp_setRStatus(dComIfGp_getRStatusForce());
|
|
}
|
|
if (i_Meter->field_0x1cc8.mUserArea != 0) {
|
|
if (dComIfGp_getRStatus() != dActStts_BLANK_e) {
|
|
if (dComIfGp_getRStatus() == dActStts_RETURN_e || dComIfGp_getRStatus() == dActStts_RETURN_e) {
|
|
pArc = dComIfGp_getMenuArchive();
|
|
} else {
|
|
pArc = dComIfGp_getActionIconArchive();
|
|
}
|
|
pFilename = dMeter_actionTex(dComIfGp_getRStatus());
|
|
JKRArchive::readTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', pFilename, pArc);
|
|
DCStoreRangeNoSync(i_Meter->actionTex[2], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x1cc8.pane)->changeTexture(i_Meter->actionTex[2], 0);
|
|
}
|
|
i_Meter->field_0x301c = dComIfGp_getRStatus();
|
|
i_Meter->field_0x26d8.mUserArea = 1;
|
|
i_Meter->field_0x1cc8.mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x301c != dComIfGp_getRStatus()) {
|
|
i_Meter->field_0x1cc8.mUserArea = 1;
|
|
}
|
|
dMeter_rTrans(i_Meter);
|
|
dMeter_rAlpha(i_Meter);
|
|
dComIfGp_setRStatusForce(dActStts_BLANK_e);
|
|
}
|
|
|
|
/* 801F71F4-801F7234 .text dMeter_rDraw__FP15sub_meter_class */
|
|
void dMeter_rDraw(sub_meter_class* i_Meter) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1cc8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x26a0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x26d8);
|
|
}
|
|
|
|
/* 801F7234-801F749C .text dMeter_rAlpha__FP15sub_meter_class */
|
|
void dMeter_rAlpha(sub_meter_class* i_Meter) {
|
|
s16 sVar2;
|
|
f32 dVar5;
|
|
f32 dVar6;
|
|
|
|
static s16 alphaNowFrame = 0;
|
|
if (
|
|
(
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(8)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK8_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK10_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK40000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)
|
|
)
|
|
)
|
|
{
|
|
if (alphaNowFrame < 5) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 5;
|
|
}
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK2000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK8000_e)) {
|
|
if (alphaNowFrame > 3) {
|
|
alphaNowFrame--;
|
|
} else if (alphaNowFrame < 3) {
|
|
alphaNowFrame++;
|
|
} else {
|
|
alphaNowFrame = 3;
|
|
}
|
|
} else {
|
|
if (alphaNowFrame < 5) {
|
|
sVar2 = alphaNowFrame + 1;
|
|
} else {
|
|
sVar2 = 5;
|
|
}
|
|
alphaNowFrame = sVar2;
|
|
i_Meter->field_0x3024 |= 0x10;
|
|
}
|
|
dVar5 = fopMsgM_valueIncrease(5, alphaNowFrame, 0);
|
|
if (dComIfGp_getRStatus() == dActStts_BLANK_e) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x1cc8);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1cc8, dVar5);
|
|
}
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) {
|
|
dVar6 = 1.0f - dVar5;
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x26a0, 1.0f - dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x26d8, dVar6);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x26a0, dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x26d8, dVar5);
|
|
}
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 8) != 0 && i_Meter->field_0x1cc8.mUserArea == 0) {
|
|
i_Meter->field_0x1cc8.pane->show();
|
|
} else {
|
|
i_Meter->field_0x1cc8.pane->hide();
|
|
}
|
|
}
|
|
|
|
/* 801F749C-801F7B0C .text dMeter_rTrans__FP15sub_meter_class */
|
|
void dMeter_rTrans(sub_meter_class* i_Meter) {
|
|
static s16 moveNowFrame = 0;
|
|
static s16 moveFlag = 0;
|
|
static s16 moveStatus = 0;
|
|
static f32 nowX = 0.0f;
|
|
static f32 nowY = 0.0f;
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(8)) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK100_e) || dComIfGp_getRStatus() == dActStts_HIDDEN_e))
|
|
{
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 1;
|
|
} else {
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) {
|
|
if (moveStatus != 2) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 2;
|
|
} else {
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK40000_e) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 4;
|
|
} else {
|
|
if ((dMenu_flag() && dComIfGp_getPictureStatus() != 2 &&
|
|
(dMenu_getPushMenuButton() == 1 || (dMenu_getMenuStatus() == 1 && dMenu_getPushMenuButton() == 0))) ||
|
|
(dMenu_flag() && (dMenu_getPushMenuButton() == 2 || (dMenu_getMenuStatus() == 2 && dMenu_getPushMenuButton() == 0))) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK20_e) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK100000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK200000_e)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK400000_e))
|
|
{
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 1;
|
|
} else {
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK20_e) {
|
|
if (dMeter_Info.mButtonIconMode == 0 || dMeter_Info.mButtonIconMode == 1 || dMeter_Info.mButtonIconMode == 2 || dMeter_Info.mButtonIconMode == 3) {
|
|
if (moveStatus != 3) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 3;
|
|
} else if (dMeter_Info.mButtonIconMode == 7 || dMeter_Info.mButtonIconMode == 8 || dMeter_Info.mButtonIconMode == 9 ||
|
|
dMeter_Info.mButtonIconMode == 10)
|
|
{
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 5;
|
|
} else {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 1;
|
|
}
|
|
|
|
} else {
|
|
if (moveStatus != 0) {
|
|
moveFlag = 1;
|
|
dMeter_offBit8(&i_Meter->field_0x3026, 8);
|
|
}
|
|
moveStatus = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (i_Meter->field_0x3026 != 0xf) {
|
|
if (dMeter_isBit8(&i_Meter->field_0x3026, 8) == 0) {
|
|
if (moveNowFrame >= 5) {
|
|
moveNowFrame = 5;
|
|
moveFlag = 0;
|
|
dMeter_onBit8(&i_Meter->field_0x3026, 8);
|
|
switch (moveStatus) {
|
|
case 1:
|
|
nowX = 0.0f;
|
|
nowY = -200.0f;
|
|
break;
|
|
case 2:
|
|
nowX = g_meterHIO.field_0xb6;
|
|
nowY = g_meterHIO.field_0xbe;
|
|
break;
|
|
case 3:
|
|
nowX = g_meterHIO.field_0x116;
|
|
nowY = g_meterHIO.field_0x11e;
|
|
break;
|
|
case 4:
|
|
nowX = g_meterHIO.field_0xe6;
|
|
nowY = g_meterHIO.field_0xee;
|
|
break;
|
|
case 5:
|
|
nowX = (f32)(g_meterHIO.field_0x116 + 0x21);
|
|
nowY = (f32)(g_meterHIO.field_0x11e - 5);
|
|
break;
|
|
default:
|
|
nowX = g_meterHIO.field_0xf6;
|
|
nowY = g_meterHIO.field_0xfe;
|
|
break;
|
|
}
|
|
} else {
|
|
moveNowFrame++;
|
|
}
|
|
}
|
|
} else {
|
|
if ((s32)moveNowFrame <= 0) {
|
|
moveNowFrame = 0;
|
|
} else {
|
|
moveNowFrame--;
|
|
}
|
|
}
|
|
f32 dVar6 = fopMsgM_valueIncrease(5, moveNowFrame, 0);
|
|
f32 x = nowX;
|
|
f32 dVar7 = (nowY + (dVar6 * (-200.0f - nowY)));
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1cc8, x, dVar7);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x26a0, x, dVar7);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x26d8, x, dVar7);
|
|
}
|
|
|
|
/* 801F7B0C-801F7B90 .text dMeter_enemyInit__FP15sub_meter_class */
|
|
void dMeter_enemyInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x0448[1].mUserArea = 0;
|
|
i_Meter->field_0x0560.mUserArea = 0;
|
|
i_Meter->field_0x03d8.mUserArea = 0;
|
|
i_Meter->field_0x0410.mUserArea = (cM_rndF(200.0f) + 300.0f);
|
|
i_Meter->field_0x0368.mUserArea = 0;
|
|
i_Meter->field_0x03a0.mUserArea = ((int)(cM_rndF(18.0f) + 40.0f) << 1);
|
|
}
|
|
|
|
/* 801F7B90-801F80C4 .text dMeter_enemyMove__FP15sub_meter_class */
|
|
void dMeter_enemyMove(sub_meter_class* i_Meter) {
|
|
dAttention_c* attention = &dComIfGp_getAttention();
|
|
stage_stag_info_class* stage_info = dComIfGp_getStageStagInfo();
|
|
JUT_ASSERT(7176, stage_info != NULL);
|
|
if (attention != NULL) {
|
|
if (!dMenu_flag() && !dComIfGp_event_runCheck() && attention->LockonTarget(0) != NULL && attention->LockonTarget(0)->max_health > 0.0f &&
|
|
dComIfGs_isCollect(4, 1) != 0 && (attention->LockonTruth() & 0xFF) != 0 && attention->LockonTarget(0)->group == fopAc_ENEMY_e &&
|
|
fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BTD_e && fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BMD_e &&
|
|
fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BDK_e && fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BPW_e &&
|
|
fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BGN_e && fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BGN2_e &&
|
|
fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BGN3_e && fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_GND_e &&
|
|
(fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BST_e || (fopAcM_GetParam(attention->LockonTarget(0)) & 0xF) != 0) &&
|
|
fopAcM_GetName(attention->LockonTarget(0)) != fpcNm_BWD_e)
|
|
{
|
|
dMeter_zakoEnemyMove(i_Meter);
|
|
} else {
|
|
dMeter_zakoEnemyHide(i_Meter);
|
|
}
|
|
}
|
|
if (!dMenu_flag() && dComIfGs_isCollect(4, 1) != 0 && !dComIfGp_event_runCheck() &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK80_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) &&
|
|
(dStage_stagInfo_GetSTType(stage_info) == dStageType_BOSS_e || fopAcM_SearchByName(fpcNm_BDK_e) != NULL))
|
|
{
|
|
if ((dComIfGs_isStageBossDemo() != 0 && dComIfGs_isStageBossEnemy() == 0) ||
|
|
strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Xboss1") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Xboss2") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Xboss3") == 0)
|
|
{
|
|
fopAc_ac_c* pfVar3;
|
|
if (fopAcM_SearchByName(fpcNm_BTD_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BTD_e);
|
|
} else if (fopAcM_SearchByName(fpcNm_BMD_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BMD_e);
|
|
} else if (fopAcM_SearchByName(fpcNm_BDK_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BDK_e);
|
|
} else if (fopAcM_SearchByName(fpcNm_BST_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BST_e);
|
|
} else if (fopAcM_SearchByName(fpcNm_BWD_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BWD_e);
|
|
} else if (fopAcM_SearchByName(fpcNm_BPW_e) != NULL) {
|
|
pfVar3 = fopAcM_SearchByName(fpcNm_BPW_e);
|
|
} else {
|
|
pfVar3 = NULL;
|
|
}
|
|
if (pfVar3 != NULL) {
|
|
dMeter_bossEnemyMove(i_Meter, pfVar3);
|
|
return;
|
|
}
|
|
dMeter_bossEnemyHide(i_Meter);
|
|
return;
|
|
}
|
|
}
|
|
dMeter_bossEnemyHide(i_Meter);
|
|
}
|
|
|
|
/* 801F80C4-801F842C .text dMeter_zakoEnemyMove__FP15sub_meter_class */
|
|
void dMeter_zakoEnemyMove(sub_meter_class* i_Meter) {
|
|
f32 fVar1;
|
|
f32 fVar2;
|
|
fopAc_ac_c* pfVar4;
|
|
f32 dVar5;
|
|
cXyz local_38;
|
|
|
|
pfVar4 = dComIfGp_getAttention().LockonTarget(0);
|
|
mDoLib_project(&pfVar4->attention_info.position, &local_38);
|
|
if (local_38.x > 320.0f) {
|
|
i_Meter->field_0x0560.mPosTopLeft.x = (local_38.x - i_Meter->field_0x0560.mSizeOrig.x) - 50.0f;
|
|
} else {
|
|
i_Meter->field_0x0560.mPosTopLeft.x = local_38.x + 50.0f;
|
|
}
|
|
i_Meter->field_0x0560.mPosTopLeft.y = local_38.y;
|
|
dVar5 = pfVar4->health / (f32)pfVar4->max_health;
|
|
fVar1 = i_Meter->field_0x0528.mPosTopLeftOrig.x - i_Meter->field_0x0560.mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x0528.mPosTopLeftOrig.y - i_Meter->field_0x0560.mPosTopLeftOrig.y;
|
|
i_Meter->field_0x0528.mPosTopLeft.x = i_Meter->field_0x0560.mPosTopLeft.x + fVar1;
|
|
i_Meter->field_0x0528.mPosTopLeft.y = i_Meter->field_0x0560.mPosTopLeft.y + fVar2;
|
|
i_Meter->field_0x0528.mSize.x = i_Meter->field_0x0528.mSizeOrig.x;
|
|
i_Meter->field_0x0528.mSize.y = i_Meter->field_0x0528.mSizeOrig.y;
|
|
i_Meter->field_0x0528.pane->move(i_Meter->field_0x0528.mPosTopLeft.x, i_Meter->field_0x0528.mPosTopLeft.y);
|
|
i_Meter->field_0x0528.pane->resize(i_Meter->field_0x0528.mSize.x, i_Meter->field_0x0528.mSize.y);
|
|
fVar1 = i_Meter->field_0x0598.mPosTopLeftOrig.x - i_Meter->field_0x0560.mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x0598.mPosTopLeftOrig.y - i_Meter->field_0x0560.mPosTopLeftOrig.y;
|
|
i_Meter->field_0x0598.mPosTopLeft.x = i_Meter->field_0x0560.mPosTopLeft.x + fVar1;
|
|
i_Meter->field_0x0598.mPosTopLeft.y = i_Meter->field_0x0560.mPosTopLeft.y + fVar2;
|
|
i_Meter->field_0x0598.mSize.x = i_Meter->field_0x0598.mSizeOrig.x;
|
|
i_Meter->field_0x0598.mSize.y = i_Meter->field_0x0598.mSizeOrig.y;
|
|
i_Meter->field_0x0598.pane->move(i_Meter->field_0x0598.mPosTopLeft.x, i_Meter->field_0x0598.mPosTopLeft.y);
|
|
i_Meter->field_0x0598.pane->resize(i_Meter->field_0x0598.mSize.x, i_Meter->field_0x0598.mSize.y);
|
|
fVar1 = i_Meter->field_0x0608.mPosTopLeftOrig.x - i_Meter->field_0x0560.mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x0608.mPosTopLeftOrig.y - i_Meter->field_0x0560.mPosTopLeftOrig.y;
|
|
i_Meter->field_0x0608.mPosTopLeft.x = i_Meter->field_0x0560.mPosTopLeft.x + fVar1;
|
|
i_Meter->field_0x0608.mPosTopLeft.y = i_Meter->field_0x0560.mPosTopLeft.y + fVar2;
|
|
i_Meter->field_0x0608.mSize.x = i_Meter->field_0x0608.mSizeOrig.x;
|
|
i_Meter->field_0x0608.mSize.y = i_Meter->field_0x0608.mSizeOrig.y;
|
|
i_Meter->field_0x0608.pane->move(i_Meter->field_0x0608.mPosTopLeft.x, i_Meter->field_0x0608.mPosTopLeft.y);
|
|
i_Meter->field_0x0608.pane->resize(i_Meter->field_0x0608.mSize.x, i_Meter->field_0x0608.mSize.y);
|
|
i_Meter->field_0x05d0.mPosTopLeft.x = i_Meter->field_0x05d0.mPosTopLeftOrig.x;
|
|
i_Meter->field_0x05d0.mPosTopLeft.y = i_Meter->field_0x05d0.mPosTopLeftOrig.y;
|
|
i_Meter->field_0x05d0.mSize.x = i_Meter->field_0x05d0.mSizeOrig.x;
|
|
i_Meter->field_0x05d0.mSize.y = i_Meter->field_0x05d0.mSizeOrig.y;
|
|
i_Meter->field_0x05d0.pane->move(i_Meter->field_0x05d0.mPosTopLeft.x, i_Meter->field_0x05d0.mPosTopLeft.y);
|
|
i_Meter->field_0x05d0.pane->resize(i_Meter->field_0x05d0.mSize.x, i_Meter->field_0x05d0.mSize.y);
|
|
i_Meter->field_0x0560.mSize.x = i_Meter->field_0x0560.mSizeOrig.x * dVar5;
|
|
i_Meter->field_0x0560.mSize.y = i_Meter->field_0x0560.mSizeOrig.y;
|
|
i_Meter->field_0x0560.pane->move(i_Meter->field_0x0560.mPosTopLeft.x, i_Meter->field_0x0560.mPosTopLeft.y);
|
|
i_Meter->field_0x0560.pane->resize(i_Meter->field_0x0560.mSize.x, i_Meter->field_0x0560.mSize.y);
|
|
if (i_Meter->field_0x0560.mUserArea < 10) {
|
|
i_Meter->field_0x0560.mUserArea++;
|
|
dVar5 = fopMsgM_valueIncrease(10, i_Meter->field_0x0560.mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0528, dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0560, dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0598, dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0608, dVar5);
|
|
} else {
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0528);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0560);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0598);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0608);
|
|
}
|
|
}
|
|
|
|
/* 801F842C-801F86E4 .text dMeter_bossEnemyMove__FP15sub_meter_classP10fopAc_ac_c */
|
|
void dMeter_bossEnemyMove(sub_meter_class* i_Meter, fopAc_ac_c* param_2) {
|
|
f32 fVar2;
|
|
f32 dVar5;
|
|
|
|
if (param_2->max_health != 0) {
|
|
fVar2 = (f32)param_2->health / (f32)param_2->max_health;
|
|
} else {
|
|
fVar2 = g_meterHIO.field_0xc;
|
|
}
|
|
if (i_Meter->field_0x0448[0].mUserArea < 0x1e) {
|
|
i_Meter->field_0x0448[0].mUserArea++;
|
|
if (i_Meter->field_0x0448[0].mUserArea <= 0xa) {
|
|
fVar2 = fopMsgM_valueIncrease(10, 10 - i_Meter->field_0x0448[0].mUserArea, 0) * 80.0f;
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[2], 0.0f);
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[3], 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0368, 0.0f, fVar2);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x03a0, 0.0f, fVar2);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x03d8, 0.0f, fVar2);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0410, 0.0f, fVar2);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0448[i], 0.0f, fVar2);
|
|
}
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(0x14, i_Meter->field_0x0448[0].mUserArea + -10, 2);
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[2], fVar2 * dVar5);
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[3], fVar2 * dVar5);
|
|
}
|
|
} else {
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[2], fVar2);
|
|
fopMsgM_paneScaleX(&i_Meter->field_0x0448[3], fVar2);
|
|
}
|
|
i_Meter->field_0x0448[2].pane->move(
|
|
((i_Meter->field_0x0448[2].mPosTopLeftOrig.x + i_Meter->field_0x0448[2].mSizeOrig.x) - i_Meter->field_0x0448[2].mSize.x),
|
|
i_Meter->field_0x0448[2].mPosTopLeftOrig.y
|
|
);
|
|
i_Meter->field_0x0448[3].pane->move(
|
|
((i_Meter->field_0x0448[3].mPosTopLeftOrig.x + i_Meter->field_0x0448[3].mSizeOrig.x) - i_Meter->field_0x0448[3].mSize.x),
|
|
i_Meter->field_0x0448[3].mPosTopLeftOrig.y
|
|
);
|
|
if (i_Meter->field_0x0448[1].mUserArea < 10) {
|
|
i_Meter->field_0x0448[1].mUserArea++;
|
|
fVar2 = fopMsgM_valueIncrease(10, i_Meter->field_0x0448[1].mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0368, fVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x03a0, fVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x03d8, fVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0410, fVar2);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0448[i], fVar2);
|
|
}
|
|
} else {
|
|
dMeter_bossAnime(i_Meter);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x03d8);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0410);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x0448[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F86E4-801F878C .text dMeter_zakoEnemyHide__FP15sub_meter_class */
|
|
void dMeter_zakoEnemyHide(sub_meter_class* i_Meter) {
|
|
if (i_Meter->field_0x0560.mUserArea > 0) {
|
|
i_Meter->field_0x0560.mUserArea--;
|
|
f32 dVar2 = fopMsgM_valueIncrease(10, i_Meter->field_0x0560.mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0528, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0560, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0598, dVar2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0608, dVar2);
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0528);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0560);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0598);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0608);
|
|
}
|
|
}
|
|
|
|
/* 801F878C-801F8888 .text dMeter_bossEnemyHide__FP15sub_meter_class */
|
|
void dMeter_bossEnemyHide(sub_meter_class* i_Meter) {
|
|
if (i_Meter->field_0x0448[1].mUserArea > 0) {
|
|
i_Meter->field_0x0448[1].mUserArea--;
|
|
f32 dVar4 = fopMsgM_valueIncrease(10, i_Meter->field_0x0448[1].mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0368, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x03a0, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x03d8, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0410, dVar4);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0448[i], dVar4);
|
|
}
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0368);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x03a0);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x03d8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0410);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0448[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F8888-801F8BA8 .text dMeter_bossAnime__FP15sub_meter_class */
|
|
void dMeter_bossAnime(sub_meter_class* i_Meter) {
|
|
f32 dVar9 = 0.0f;
|
|
const s16 unk_9010[] = {0x04, 0x0A, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02};
|
|
s16 unk_array[15];
|
|
unk_array[0] = unk_9010[0];
|
|
for (s32 i = 1; i < 15; i++) {
|
|
unk_array[i] = unk_array[i - 1] + unk_9010[i];
|
|
};
|
|
i_Meter->field_0x03d8.mUserArea++;
|
|
if (i_Meter->field_0x03d8.mUserArea >= i_Meter->field_0x0410.mUserArea) {
|
|
i_Meter->field_0x03d8.mUserArea = 0;
|
|
i_Meter->field_0x0410.mUserArea = cM_rndF(200.0f) + 300.0f;
|
|
} else {
|
|
if (i_Meter->field_0x03d8.mUserArea < unk_array[10]) {
|
|
if (i_Meter->field_0x03d8.mUserArea < unk_array[0]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[0], i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[1]) {
|
|
dVar9 = 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[2]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[2], unk_array[2] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[3]) {
|
|
dVar9 = 0.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[4]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[4], unk_array[4] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[5]) {
|
|
dVar9 = 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[6]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[6], unk_array[6] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[7]) {
|
|
dVar9 = 0.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[8]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[8], unk_array[8] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[9]) {
|
|
dVar9 = 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[10]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[10], unk_array[10] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[11]) {
|
|
dVar9 = 0.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[12]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[12], unk_array[12] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[13]) {
|
|
dVar9 = 2.0f;
|
|
} else if (i_Meter->field_0x03d8.mUserArea < unk_array[14]) {
|
|
dVar9 = fopMsgM_valueIncrease(unk_9010[14], unk_array[14] - i_Meter->field_0x03d8.mUserArea, 0) * 2.0f;
|
|
}
|
|
}
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x03d8, 0.0f, -dVar9);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0368, 0.0f, -dVar9);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x03a0, 0.0f, -dVar9);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0410, 0.0f, dVar9);
|
|
dMeter_bossEyeAnime(i_Meter);
|
|
}
|
|
|
|
/* 801F8BA8-801F8CD0 .text dMeter_bossEyeAnime__FP15sub_meter_class */
|
|
void dMeter_bossEyeAnime(sub_meter_class* i_Meter) {
|
|
int iVar2;
|
|
f32 dVar4;
|
|
|
|
static bool bossEyeFlag = false;
|
|
iVar2 = (s16)(i_Meter->field_0x03a0.mUserArea / 2);
|
|
i_Meter->field_0x0368.mUserArea++;
|
|
if (bossEyeFlag != false) {
|
|
if (i_Meter->field_0x0368.mUserArea < iVar2) {
|
|
dVar4 = fopMsgM_valueIncrease(iVar2, i_Meter->field_0x0368.mUserArea, 2);
|
|
} else {
|
|
dVar4 = fopMsgM_valueIncrease(iVar2, i_Meter->field_0x03a0.mUserArea - i_Meter->field_0x0368.mUserArea, 2);
|
|
}
|
|
} else {
|
|
dVar4 = 0.0f;
|
|
}
|
|
if (i_Meter->field_0x0368.mUserArea == i_Meter->field_0x03a0.mUserArea) {
|
|
i_Meter->field_0x0368.mUserArea = 0;
|
|
i_Meter->field_0x03a0.mUserArea = ((int)(cM_rndF(18.0f) + 40.0f) * 2);
|
|
if (bossEyeFlag != false) {
|
|
bossEyeFlag = false;
|
|
} else {
|
|
bossEyeFlag = true;
|
|
}
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0368, dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x03a0, dVar4);
|
|
}
|
|
|
|
/* 801F8CD0-801F8F28 .text dMeter_magicInit__FP15sub_meter_class */
|
|
void dMeter_magicInit(sub_meter_class* i_Meter) {
|
|
if ((g_dComIfG_gameInfo.play.field_0x4965 >> 1 & 1) != 0) {
|
|
#if VERSION > VERSION_DEMO
|
|
i_Meter->field_0x3018 = dComIfGs_getMaxMagic();
|
|
#endif
|
|
i_Meter->field_0x3016 = (i_Meter->field_0x0f38[0].mSizeOrig.x * dComIfGs_getMagic() * 25.0f);
|
|
} else {
|
|
#if VERSION > VERSION_DEMO
|
|
i_Meter->field_0x3018 = 0;
|
|
#endif
|
|
i_Meter->field_0x3016 = 0;
|
|
g_dComIfG_gameInfo.play.field_0x4965 |= 2;
|
|
}
|
|
i_Meter->field_0x3019 = 0;
|
|
i_Meter->field_0x0f38[0].mUserArea = 0;
|
|
i_Meter->field_0x0f38[1].mUserArea = 0;
|
|
i_Meter->field_0x0f38[2].mUserArea = 0;
|
|
i_Meter->field_0x0f38[3].mUserArea = 0;
|
|
i_Meter->field_0x0f38[4].mUserArea = 0;
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
i_Meter->field_0x10f8.mUserArea = 0;
|
|
i_Meter->field_0x11a0.mUserArea = 0;
|
|
i_Meter->field_0x1130.mUserArea = 0;
|
|
i_Meter->field_0x11d8.mUserArea = 0;
|
|
i_Meter->field_0x2fc0 = 0.0f;
|
|
#if VERSION > VERSION_DEMO
|
|
dMeter_magicLength(i_Meter, i_Meter->field_0x3018 / 32.0f);
|
|
#endif
|
|
dMeter_magicChange(i_Meter, i_Meter->field_0x3016 / 100.0f);
|
|
i_Meter->field_0x2f08.set(((J2DPicture*)i_Meter->field_0x11a0.pane)->getWhite());
|
|
i_Meter->field_0x2f0c.set(((J2DPicture*)i_Meter->field_0x11a0.pane)->getBlack());
|
|
i_Meter->field_0x2f10.set(((J2DPicture*)i_Meter->field_0x0f38[0].pane)->getWhite());
|
|
i_Meter->field_0x2f14.set(((J2DPicture*)i_Meter->field_0x0f38[0].pane)->getBlack());
|
|
i_Meter->field_0x2f18.set(((J2DPicture*)i_Meter->field_0x0f38[1].pane)->getWhite());
|
|
i_Meter->field_0x2f1c.set(((J2DPicture*)i_Meter->field_0x0f38[1].pane)->getBlack());
|
|
#if VERSION == VERSION_DEMO
|
|
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
|
|
#else
|
|
dMeter_magicTransNowInit(i_Meter);
|
|
#endif
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x10f8);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x11a0);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x11d8);
|
|
}
|
|
|
|
/* 801F8F28-801F9048 .text dMeter_magicMove__FP15sub_meter_class */
|
|
void dMeter_magicMove(sub_meter_class* i_Meter) {
|
|
if (i_Meter->mStatusFlags & dMtrStts_UNK40000_e) {
|
|
if (dComIfGp_getCb1Player() == fopAcM_SearchByName(fpcNm_NPC_CB1_e)) {
|
|
int iVar4 = daNpc_Cb1_c::m_flyingTimer;
|
|
u8 uVar2 = daNpc_Cb1_c::m_flying;
|
|
s16 uVar3 = daNpc_Cb1_c::getMaxFlyingTimer();
|
|
dMeter_flyGaugeMove(i_Meter, uVar2, uVar3, iVar4);
|
|
} else if (dComIfGp_getCb1Player() == fopAcM_SearchByName(fpcNm_NPC_MD_e)) {
|
|
int iVar4 = daNpc_Md_c::m_flyingTimer;
|
|
u8 uVar2 = daNpc_Md_c::m_flying;
|
|
s16 uVar3 = daNpc_Md_c::getMaxFlyingTimer();
|
|
dMeter_flyGaugeMove(i_Meter, uVar2, uVar3, iVar4);
|
|
} else {
|
|
dMeter_flyGaugeMove(i_Meter, 0, 1, 1);
|
|
}
|
|
if (i_Meter->field_0x0f38[2].mUserArea == 1) {
|
|
i_Meter->field_0x0f38[2].mUserArea = 0;
|
|
}
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
} else {
|
|
dMeter_magicGaugeMove(i_Meter);
|
|
if (i_Meter->field_0x11d8.mUserArea != 0) {
|
|
i_Meter->field_0x11d8.mUserArea = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801F9048-801F961C .text dMeter_magicGaugeMove__FP15sub_meter_class */
|
|
void dMeter_magicGaugeMove(sub_meter_class* i_Meter) {
|
|
u32 uVar2;
|
|
s16 sVar4;
|
|
u16 uVar5;
|
|
u32 uVar7;
|
|
u16 uVar8;
|
|
|
|
static bool soundOnFlag = false;
|
|
if (i_Meter->field_0x0f38[0].mUserArea == 1) {
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setWhite(i_Meter->field_0x2f08);
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setBlack(i_Meter->field_0x2f0c);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setWhite(i_Meter->field_0x2f08);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setBlack(i_Meter->field_0x2f0c);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
((J2DPicture*)i_Meter->field_0x0f38[0 + i * 2].pane)->setWhite(i_Meter->field_0x2f10);
|
|
((J2DPicture*)i_Meter->field_0x0f38[0 + i * 2].pane)->setBlack(i_Meter->field_0x2f14);
|
|
((J2DPicture*)i_Meter->field_0x0f38[1 + i * 2].pane)->setWhite(i_Meter->field_0x2f18);
|
|
((J2DPicture*)i_Meter->field_0x0f38[1 + i * 2].pane)->setBlack(i_Meter->field_0x2f1c);
|
|
}
|
|
i_Meter->field_0x0f38[0].mUserArea = 0;
|
|
dMeter_magicTransScale(i_Meter, 0.0f, 0.0f, 1.0f);
|
|
#if VERSION > VERSION_DEMO
|
|
dMeter_magicInitTrans(i_Meter);
|
|
dMeter_magicChange(i_Meter, i_Meter->field_0x3016 / 100.0f);
|
|
#endif
|
|
}
|
|
if (dComIfGp_getItemMaxMagicCount() != 0) {
|
|
sVar4 = dComIfGs_getMaxMagic() + dComIfGp_getItemMaxMagicCount();
|
|
if (sVar4 > 0x20) {
|
|
sVar4 = 0x20;
|
|
}
|
|
dComIfGs_setMaxMagic(sVar4);
|
|
g_dComIfG_gameInfo.play.mItemMaxMagicCount = 0;
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
if (i_Meter->field_0x3018 != dComIfGs_getMaxMagic() || i_Meter->field_0x0f38[2].mUserArea == 0) {
|
|
if (i_Meter->field_0x3018 < dComIfGs_getMaxMagic()) {
|
|
i_Meter->field_0x3018++;
|
|
} else if (i_Meter->field_0x3018 > dComIfGs_getMaxMagic()) {
|
|
i_Meter->field_0x3018--;
|
|
}
|
|
dMeter_magicLength(i_Meter, i_Meter->field_0x3018 / 32.0f);
|
|
if (i_Meter->field_0x3018 == dComIfGs_getMaxMagic()) {
|
|
if (dComIfGs_getMaxMagic() <= 0x10) {
|
|
dMeter_magicLength(i_Meter, 0.5f);
|
|
} else {
|
|
dMeter_magicLength(i_Meter, 1.0f);
|
|
}
|
|
i_Meter->field_0x0f38[2].mUserArea = 1;
|
|
}
|
|
}
|
|
#endif
|
|
if (dComIfGs_getMaxMagic() != 0) {
|
|
if (dComIfGp_getItemMagicCount() != 0) {
|
|
sVar4 = dComIfGs_getMagic() + dComIfGp_getItemMagicCount();
|
|
if (sVar4 < 0) {
|
|
sVar4 = 0;
|
|
}
|
|
dComIfGs_setMagic(sVar4);
|
|
g_dComIfG_gameInfo.play.mItemMagicCount = 0;
|
|
}
|
|
}
|
|
if (dComIfGs_getMagic() > dComIfGs_getMaxMagic()) {
|
|
dComIfGs_setMagic(dComIfGs_getMaxMagic());
|
|
}
|
|
if (!fopOvlpM_IsDoingReq() &&
|
|
(!(i_Meter->mStatusFlags & dMtrStts_UNK40_e) ||
|
|
!dComIfGp_event_checkHind(0x20) || !dComIfGp_evmng_checkStartDemo() || dComIfGp_checkPlayerStatus1(0, daPyStts1_UNK2000_e)))
|
|
{
|
|
uVar8 = (i_Meter->field_0x0f38[0].mSizeOrig.x * (f32)(dComIfGs_getMagic()) * 25.0f);
|
|
uVar5 = i_Meter->field_0x3016;
|
|
uVar7 = uVar5;
|
|
uVar2 = uVar8;
|
|
if (uVar7 < uVar2) {
|
|
if ((int)(uVar2 - uVar7) < 0x271) {
|
|
i_Meter->field_0x3016 = uVar8;
|
|
} else {
|
|
i_Meter->field_0x3016 = uVar5 + 0x271;
|
|
}
|
|
if ((i_Meter->field_0x3016 % 1250) == 0) {
|
|
mDoAud_seStart(JA_SE_MP_GAUGE_INC, NULL, i_Meter->field_0x3016 / 1250);
|
|
}
|
|
dMeter_magicChange(i_Meter, i_Meter->field_0x3016 / 100.0f);
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
} else if (uVar7 > uVar2) {
|
|
if ((int)(uVar7 - uVar2) < 0x271) {
|
|
i_Meter->field_0x3016 = 0;
|
|
} else {
|
|
i_Meter->field_0x3016 = uVar5 - 0x271;
|
|
}
|
|
if ((i_Meter->field_0x3016 % 1250) == 0) {
|
|
mDoAud_seStart(JA_SE_MP_GAUGE_DEC);
|
|
}
|
|
if (i_Meter->field_0x3016 == 0) {
|
|
mDoAud_seStart(JA_SE_MP_GAUGE_DEC_FIN);
|
|
}
|
|
dMeter_magicChange(i_Meter, i_Meter->field_0x3016 / 100.0f);
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
} else if (i_Meter->field_0x0f38[5].mUserArea != 0) {
|
|
dMeter_magicChange(i_Meter, uVar7 / 100.0f);
|
|
i_Meter->field_0x0f38[5].mUserArea = 0;
|
|
}
|
|
} else {
|
|
i_Meter->field_0x0f38[5].mUserArea = 1;
|
|
}
|
|
dMeter_magicColor(i_Meter);
|
|
dMeter_magicAlpha(i_Meter);
|
|
}
|
|
|
|
/* 801F961C-801F9A24 .text dMeter_flyGaugeMove__FP15sub_meter_classUcss */
|
|
void dMeter_flyGaugeMove(sub_meter_class* i_Meter, u8 param_2, s16 param_3, s16 param_4) {
|
|
f32 dVar8;
|
|
f32 dVar9;
|
|
f32 dVar10;
|
|
cXyz local_50;
|
|
JUtility::TColor color1(0x64, 0x64, 0xFF, 0xFF);
|
|
JUtility::TColor color2(0x64, 0x64, 0xFF, 0x00);
|
|
JUtility::TColor color3(0x96, 0x96, 0xE6, 0xFF);
|
|
JUtility::TColor color4(0x96, 0x96, 0xE6, 0x00);
|
|
JUtility::TColor color5(0xB4, 0xB4, 0xFF, 0xFF);
|
|
JUtility::TColor color6(0xB4, 0xB4, 0xFF, 0x00);
|
|
|
|
if (param_2 != 0) {
|
|
f32 f30 = (f32)(param_4) / (f32)(param_3) * 25.0f * 8.0f;
|
|
#if VERSION == VERSION_DEMO
|
|
dMeter_magicInitTrans(i_Meter, 0.0f, 0.0f);
|
|
#else
|
|
dMeter_magicInitTrans(i_Meter);
|
|
#endif
|
|
dMeter_magicChange(i_Meter, f30);
|
|
if (i_Meter->field_0x0f38[0].mUserArea == 0) {
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setWhite(color1);
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setBlack(color2);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setWhite(color1);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setBlack(color2);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
((J2DPicture*)i_Meter->field_0x0f38[0 + i * 2].pane)->setWhite(color3);
|
|
((J2DPicture*)i_Meter->field_0x0f38[0 + i * 2].pane)->setBlack(color4);
|
|
((J2DPicture*)i_Meter->field_0x0f38[1 + i * 2].pane)->setWhite(color5);
|
|
((J2DPicture*)i_Meter->field_0x0f38[1 + i * 2].pane)->setBlack(color6);
|
|
}
|
|
i_Meter->field_0x0f38[0].mUserArea = 1;
|
|
i_Meter->field_0x0f38[1].mUserArea = 0x14;
|
|
i_Meter->field_0x1130.mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x11a0.mUserArea < 5) {
|
|
i_Meter->field_0x11a0.mUserArea++;
|
|
dVar8 = fopMsgM_valueIncrease(5, (int)i_Meter->field_0x11a0.mUserArea, 0);
|
|
} else {
|
|
dVar8 = 1.0f;
|
|
}
|
|
if (i_Meter->field_0x1130.mUserArea < 0x32) {
|
|
i_Meter->field_0x1130.mUserArea++;
|
|
mDoLib_project(&dComIfGp_getCb1Player()->eyePos, &local_50);
|
|
if (i_Meter->field_0x1130.mUserArea > 0x1e) {
|
|
dVar9 = fopMsgM_valueIncrease(0x14, 0x32 - i_Meter->field_0x1130.mUserArea, 0);
|
|
dVar10 = fopMsgM_valueIncrease(0x14, i_Meter->field_0x1130.mUserArea + -0x1e, 0);
|
|
dMeter_magicTransScale(
|
|
i_Meter,
|
|
dVar9 * (local_50.x - i_Meter->field_0x11a0.mPosCenter.x),
|
|
dVar9 * (local_50.y - i_Meter->field_0x11a0.mPosCenter.y),
|
|
(dVar10 * 0.5f) + 0.5f
|
|
);
|
|
} else {
|
|
dMeter_magicTransScale(i_Meter, local_50.x - i_Meter->field_0x11a0.mPosCenter.x, local_50.y - i_Meter->field_0x11a0.mPosCenter.y, 0.5f);
|
|
}
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x11a0.mUserArea > 0) {
|
|
i_Meter->field_0x11a0.mUserArea--;
|
|
dVar8 = fopMsgM_valueIncrease(5, i_Meter->field_0x11a0.mUserArea, 0);
|
|
} else {
|
|
dVar8 = 0.0f;
|
|
i_Meter->field_0x11a0.mUserArea = 0;
|
|
#if VERSION == VERSION_DEMO
|
|
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
|
|
#else
|
|
dMeter_magicTransNowInit(i_Meter);
|
|
#endif
|
|
}
|
|
if (i_Meter->field_0x1130.mUserArea != 0) {
|
|
i_Meter->field_0x1130.mUserArea = 0;
|
|
}
|
|
}
|
|
i_Meter->field_0x2fc0 = dVar8;
|
|
}
|
|
|
|
/* 801F9A24-801F9B3C .text dMeter_magicChange__FP15sub_meter_classf */
|
|
void dMeter_magicChange(sub_meter_class* i_Meter, f32 param_2) {
|
|
dComIfGp_setItemNowMagic((param_2 / i_Meter->field_0x0f38[0].mSizeOrig.x) * 4.0f);
|
|
#if VERSION == VERSION_DEMO
|
|
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
|
|
#else
|
|
dMeter_magicTransNowInit(i_Meter);
|
|
#endif
|
|
for (s32 i = 0; i < 8; i++) {
|
|
if (param_2 >= i_Meter->field_0x0f38[i].mSizeOrig.x) {
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x0f38[i], 1.0f);
|
|
i_Meter->field_0x0f38[i].pane->show();
|
|
param_2 = param_2 - i_Meter->field_0x0f38[i].mSizeOrig.x;
|
|
} else {
|
|
if (param_2 <= 0.0f) {
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x0f38[i], 1.0f);
|
|
i_Meter->field_0x0f38[i].pane->hide();
|
|
} else {
|
|
i_Meter->field_0x0f38[i].pane->resize(param_2, i_Meter->field_0x0f38[i].mSizeOrig.y);
|
|
i_Meter->field_0x0f38[i].pane->show();
|
|
param_2 = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
void dMeter_magicTrans(sub_meter_class* i_Meter, f32 param_1, f32 param_2) {
|
|
f32 y;
|
|
if (dComIfGs_getMaxLife() <= 0x2B) {
|
|
y = -22.0f + param_2;
|
|
} else {
|
|
y = param_2;
|
|
}
|
|
f32 fVar2 = param_1 + (i_Meter->field_0x10f8.mPosCenter.x - i_Meter->field_0x10f8.mPosCenterOrig.x);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x10f8, fVar2, y);
|
|
fVar2 = param_1 + (i_Meter->field_0x11a0.mPosCenter.x - i_Meter->field_0x11a0.mPosCenterOrig.x);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11a0, fVar2, y);
|
|
fVar2 = param_1 + (i_Meter->field_0x11d8.mPosCenter.x - i_Meter->field_0x11d8.mPosCenterOrig.x);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11d8, fVar2, y);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fVar2 = param_1 + (i_Meter->field_0x0f38[i].mPosCenter.x - i_Meter->field_0x0f38[i].mPosCenterOrig.x);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], fVar2, y);
|
|
}
|
|
}
|
|
#else
|
|
/* 801F9B3C-801F9C14 .text dMeter_magicTransNowInit__FP15sub_meter_class */
|
|
void dMeter_magicTransNowInit(sub_meter_class* i_Meter) {
|
|
f32 y;
|
|
if (dComIfGs_getMaxLife() <= 0x2B) {
|
|
y = -22.0f;
|
|
} else {
|
|
y = 0.0f;
|
|
}
|
|
f32 fVar2 = i_Meter->field_0x10f8.mPosCenter.x - i_Meter->field_0x10f8.mPosCenterOrig.x;
|
|
fopMsgM_paneTrans(&i_Meter->field_0x10f8, fVar2, y);
|
|
fVar2 = i_Meter->field_0x11a0.mPosCenter.x - i_Meter->field_0x11a0.mPosCenterOrig.x;
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11a0, fVar2, y);
|
|
fVar2 = i_Meter->field_0x11d8.mPosCenter.x - i_Meter->field_0x11d8.mPosCenterOrig.x;
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11d8, fVar2, y);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fVar2 = i_Meter->field_0x0f38[i].mPosCenter.x - i_Meter->field_0x0f38[i].mPosCenterOrig.x;
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], fVar2, y);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
void dMeter_magicInitTrans(sub_meter_class* i_Meter, f32 param_1, f32 param_2) {
|
|
/* Nonmatching - regalloc */
|
|
f32 y;
|
|
if (dComIfGs_getMaxLife() <= 0x2B) {
|
|
y = -22.0f + param_2;
|
|
} else {
|
|
y = param_2;
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x10f8, param_1, y);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11a0, param_1, y);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11d8, param_1, y);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], param_1, y);
|
|
}
|
|
}
|
|
#else
|
|
/* 801F9C14-801F9CCC .text dMeter_magicInitTrans__FP15sub_meter_class */
|
|
void dMeter_magicInitTrans(sub_meter_class* i_Meter) {
|
|
f32 y;
|
|
if (dComIfGs_getMaxLife() <= 0x2B) {
|
|
y = -22.0f;
|
|
} else {
|
|
y = 0.0f;
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x10f8, 0.0f, y);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11a0, 0.0f, y);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11d8, 0.0f, y);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], 0.0f, y);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
/* 801F9CCC-801F9F18 .text dMeter_magicTransScale__FP15sub_meter_classfff */
|
|
void dMeter_magicTransScale(sub_meter_class* i_Meter, f32 param_2, f32 param_3, f32 param_4) {
|
|
/* Nonmatching */
|
|
f32 fVar1;
|
|
f32 dVar5;
|
|
|
|
if (dComIfGs_getMaxLife() <= 0x2b) {
|
|
param_3 += -22.0f;
|
|
}
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x11a0, param_4);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x11a0, param_2, param_3);
|
|
i_Meter->field_0x1130.mPosCenter.x = (i_Meter->field_0x1130.mPosCenterOrig.x * param_4);
|
|
i_Meter->field_0x1130.mPosCenter.y = (i_Meter->field_0x1130.mPosCenterOrig.y * param_4);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x1130, param_4);
|
|
fVar1 = i_Meter->field_0x11a0.mPosCenterOrig.x;
|
|
i_Meter->field_0x10f8.mPosCenter.x = (param_2 + (fVar1 + (param_4 * (i_Meter->field_0x10f8.mPosCenterOrig.x - fVar1))));
|
|
fVar1 = i_Meter->field_0x11a0.mPosCenterOrig.y;
|
|
i_Meter->field_0x10f8.mPosCenter.y = (param_3 + (fVar1 + (param_4 * (i_Meter->field_0x10f8.mPosCenterOrig.y - fVar1))));
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x10f8, param_4);
|
|
fVar1 = i_Meter->field_0x11a0.mPosCenterOrig.x;
|
|
i_Meter->field_0x11d8.mPosCenter.x = (param_2 + (fVar1 + (param_4 * (i_Meter->field_0x11d8.mPosCenterOrig.x - fVar1))));
|
|
fVar1 = i_Meter->field_0x11a0.mPosCenterOrig.y;
|
|
i_Meter->field_0x11d8.mPosCenter.y = (param_3 + (fVar1 + (param_4 * (i_Meter->field_0x11d8.mPosCenterOrig.y - fVar1))));
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x11d8, param_4);
|
|
i_Meter->field_0x1168.mPosCenter.x = (i_Meter->field_0x1168.mPosCenterOrig.x * param_4);
|
|
i_Meter->field_0x1168.mPosCenter.y = (i_Meter->field_0x1168.mPosCenterOrig.y * param_4);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x1168, param_4);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
i_Meter->field_0x0f38[i].mPosCenter.x =
|
|
(param_2 +
|
|
(i_Meter->field_0x11a0.mPosCenterOrig.x + (param_4 * (i_Meter->field_0x0f38[i].mPosCenterOrig.x - i_Meter->field_0x11a0.mPosCenterOrig.x))));
|
|
i_Meter->field_0x0f38[i].mPosCenter.y =
|
|
(param_3 +
|
|
(i_Meter->field_0x11a0.mPosCenterOrig.y + (param_4 * (i_Meter->field_0x0f38[i].mPosCenterOrig.y - i_Meter->field_0x11a0.mPosCenterOrig.y))));
|
|
i_Meter->field_0x0f38[i].mPosCenter.x -= ((i_Meter->field_0x0f38[i].mSizeOrig.x * param_4) / 2.0f);
|
|
i_Meter->field_0x0f38[i].mSize.x = (param_4 * (i_Meter->field_0x0f38[i].pane->mBounds.f.x - i_Meter->field_0x0f38[i].pane->mBounds.i.x));
|
|
i_Meter->field_0x0f38[i].mSize.y = (param_4 * (i_Meter->field_0x0f38[i].pane->mBounds.f.y - i_Meter->field_0x0f38[i].pane->mBounds.i.y));
|
|
i_Meter->field_0x0f38[i].mPosCenter.x += (i_Meter->field_0x0f38[i].mSize.x / 2.0f);
|
|
fopMsgM_cposMove(&i_Meter->field_0x0f38[i]);
|
|
i_Meter->field_0x0f38[i].mSize.x = i_Meter->field_0x0f38[i].mSizeOrig.x;
|
|
i_Meter->field_0x0f38[i].mSize.y = i_Meter->field_0x0f38[i].mSizeOrig.y;
|
|
}
|
|
}
|
|
|
|
/* 801F9F18-801FA378 .text dMeter_magicColor__FP15sub_meter_class */
|
|
void dMeter_magicColor(sub_meter_class* i_Meter) {
|
|
f32 dVar12;
|
|
|
|
if (!(i_Meter->mStatusFlags & dMtrStts_UNK8_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK10_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100_e) &&
|
|
(
|
|
daPy_getPlayerActorClass()->checkEquipDragonShield() ||
|
|
(g_dComIfG_gameInfo.play.field_0x4965 & 1) ||
|
|
(daPy_getPlayerLinkActorClass()->checkCutRollChange() ||
|
|
dComIfGp_checkPlayerStatus1(0, daPyStts1_DEKU_LEAF_FLY_e)) ||
|
|
(dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) && daArrow_c::getKeepType() != 0 && (daPy_getPlayerActorClass()->getItemID() != -1))
|
|
)
|
|
) {
|
|
JUtility::TColor color1;
|
|
JUtility::TColor color2;
|
|
if (i_Meter->field_0x0f38[4].mUserArea == 0) {
|
|
i_Meter->field_0x0f38[4].mUserArea = 1;
|
|
}
|
|
if (i_Meter->field_0x0f38[3].mUserArea < 0x1d) {
|
|
i_Meter->field_0x0f38[3].mUserArea++;
|
|
} else {
|
|
i_Meter->field_0x0f38[3].mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x0f38[3].mUserArea < 0xf) {
|
|
dVar12 = fopMsgM_valueIncrease(0xf, i_Meter->field_0x0f38[3].mUserArea, 0);
|
|
} else {
|
|
dVar12 = fopMsgM_valueIncrease(0xf, 0x1e - i_Meter->field_0x0f38[3].mUserArea, 0);
|
|
}
|
|
color1.r = i_Meter->field_0x2f08.r - ((i_Meter->field_0x2f08.r - 255.0f) * dVar12);
|
|
color1.g = i_Meter->field_0x2f08.g - ((i_Meter->field_0x2f08.g - 255.0f) * dVar12);
|
|
color1.b = i_Meter->field_0x2f08.b - ((i_Meter->field_0x2f08.b - 255.0f) * dVar12);
|
|
color1.a = 0xFF;
|
|
color2.r = i_Meter->field_0x2f0c.r - ((i_Meter->field_0x2f0c.r - 255.0f) * dVar12);
|
|
color2.g = i_Meter->field_0x2f0c.g - ((i_Meter->field_0x2f0c.g - 255.0f) * dVar12);
|
|
color2.b = i_Meter->field_0x2f0c.b - ((i_Meter->field_0x2f0c.b - 255.0f) * dVar12);
|
|
color2.a = 0x00;
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setWhite(color1);
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setBlack(color2);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setWhite(color1);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setBlack(color2);
|
|
g_dComIfG_gameInfo.play.field_0x4965 = g_dComIfG_gameInfo.play.field_0x4965 & 0xfe;
|
|
return;
|
|
}
|
|
if (i_Meter->field_0x0f38[4].mUserArea == 1) {
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setWhite(i_Meter->field_0x2f08);
|
|
((J2DPicture*)i_Meter->field_0x11a0.pane)->setBlack(i_Meter->field_0x2f0c);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setWhite(i_Meter->field_0x2f08);
|
|
((J2DPicture*)i_Meter->field_0x1130.pane)->setBlack(i_Meter->field_0x2f0c);
|
|
i_Meter->field_0x0f38[4].mUserArea = 0;
|
|
}
|
|
}
|
|
|
|
/* 801FA378-801FA53C .text dMeter_magicAlpha__FP15sub_meter_class */
|
|
void dMeter_magicAlpha(sub_meter_class* i_Meter) {
|
|
if (dComIfGs_getMaxMagic() == 0 || (i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x20) && !dComIfGp_checkPlayerStatus1(0, daPyStts1_UNK2000_e)) ||
|
|
dMenu_getCollectMode() == 4 || (i_Meter->mStatusFlags & dMtrStts_UNK200000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80000_e) || dMeter_isAuctionFlag() || (i_Meter->mStatusFlags & dMtrStts_UNK400000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) || ((strcmp(dComIfGp_getStartStageName(), "Ojhous") == 0) && dComIfGp_getMiniGameType() == 6))
|
|
{
|
|
if (i_Meter->field_0x10f8.mUserArea > 0) {
|
|
i_Meter->field_0x10f8.mUserArea--;
|
|
} else {
|
|
i_Meter->field_0x10f8.mUserArea = 0;
|
|
}
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK8_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10_e)) {
|
|
if (i_Meter->field_0x10f8.mUserArea < 3) {
|
|
i_Meter->field_0x10f8.mUserArea++;
|
|
} else if (i_Meter->field_0x10f8.mUserArea > 3) {
|
|
i_Meter->field_0x10f8.mUserArea--;
|
|
} else {
|
|
i_Meter->field_0x10f8.mUserArea = 3;
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x10f8.mUserArea < 5) {
|
|
i_Meter->field_0x10f8.mUserArea++;
|
|
} else {
|
|
i_Meter->field_0x10f8.mUserArea = 5;
|
|
}
|
|
}
|
|
i_Meter->field_0x2fc0 = fopMsgM_valueIncrease(5, i_Meter->field_0x10f8.mUserArea, 0);
|
|
}
|
|
|
|
/* 801FA53C-801FA670 .text dMeter_gaugeAlpha__FP15sub_meter_class */
|
|
void dMeter_gaugeAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar4 = i_Meter->field_0x2fbc;
|
|
f32 dVar3 = i_Meter->field_0x2fc0;
|
|
for (s32 i = 0; i < 20; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->mHeart[i], dVar4);
|
|
fopMsgM_setNowAlpha(&i_Meter->mHeartShadow[i], dVar4);
|
|
}
|
|
i_Meter->field_0x0f00.mNowAlpha = i_Meter->field_0x0f00.mNowAlpha * dVar4;
|
|
i_Meter->field_0x0f00.pane->setAlpha(i_Meter->field_0x0f00.mNowAlpha * dVar4);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0f38[i], dVar3);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x10f8, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x11a0, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x11d8, dVar3);
|
|
}
|
|
|
|
/* 801FA670-801FA6C4 .text dMeter_menuInit__FP15sub_meter_class */
|
|
void dMeter_menuInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x0250.mUserArea = 10;
|
|
i_Meter->field_0x0288.mUserArea = 0;
|
|
i_Meter->field_0x02c0.mUserArea = 0;
|
|
i_Meter->field_0x0100[0].mUserArea = dComIfGs_isDungeonItemCompass();
|
|
}
|
|
|
|
/* 801FA6C4-801FA6F8 .text dMeter_menuMove__FP15sub_meter_class */
|
|
void dMeter_menuMove(sub_meter_class* i_Meter) {
|
|
dMeter_menuLRMove(i_Meter);
|
|
dMeter_menuPlusMove(i_Meter);
|
|
}
|
|
|
|
/* 801FA6F8-801FA918 .text dMeter_menuLRMove__FP15sub_meter_class */
|
|
void dMeter_menuLRMove(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
s16 iVar3;
|
|
s16 iVar4;
|
|
s16 sVar5;
|
|
f32 dVar6;
|
|
f32 dVar7;
|
|
|
|
static u8 frame = dMenu_getPushMenuButton();
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK200000_e) || dMenu_getCollectMode() == 5) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0250);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0288);
|
|
} else {
|
|
sVar5 = 0x14;
|
|
if (frame != dMenu_getPushMenuButton()) {
|
|
if (frame != 0 && dMenu_getPushMenuButton() != 0) {
|
|
sVar5 = g_menuHIO.field_0x92 * 2;
|
|
i_Meter->field_0x0250.mUserArea = sVar5;
|
|
i_Meter->field_0x0288.mUserArea = 1;
|
|
} else {
|
|
i_Meter->field_0x0288.mUserArea = 0;
|
|
}
|
|
frame = dMenu_getPushMenuButton();
|
|
}
|
|
iVar4 = sVar5 / 2;
|
|
if (dMenu_getPushMenuButton() != 0) {
|
|
if (i_Meter->field_0x0250.mUserArea != 0) {
|
|
i_Meter->field_0x0250.mUserArea--;
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x0250.mUserArea < iVar4) {
|
|
i_Meter->field_0x0250.mUserArea++;
|
|
} else if (i_Meter->field_0x0250.mUserArea > iVar4) {
|
|
i_Meter->field_0x0250.mUserArea--;
|
|
}
|
|
}
|
|
iVar3 = (int)i_Meter->field_0x0250.mUserArea;
|
|
int iVar4_2 = iVar4;
|
|
if (iVar3 > iVar4_2) {
|
|
dVar6 = fopMsgM_valueIncrease(iVar4_2, sVar5 - iVar3, 0);
|
|
if (i_Meter->field_0x0288.mUserArea != 0) {
|
|
dVar7 = 1.0f;
|
|
} else {
|
|
dVar7 = fopMsgM_valueIncrease(iVar4_2, i_Meter->field_0x0250.mUserArea - iVar4_2, 0);
|
|
}
|
|
} else {
|
|
dVar6 = fopMsgM_valueIncrease(iVar4_2, iVar3, 0);
|
|
if (i_Meter->field_0x0288.mUserArea != 0) {
|
|
dVar7 = 1.0f;
|
|
} else {
|
|
dVar7 = fopMsgM_valueIncrease(iVar4_2, iVar4_2 - i_Meter->field_0x0250.mUserArea, 0);
|
|
}
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0250, dVar6 * 20.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0288, dVar6 * -20.0f, 0.0f);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0250, dVar7);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0288, dVar7);
|
|
}
|
|
}
|
|
|
|
/* 801FA918-801FBB28 .text dMeter_menuPlusMove__FP15sub_meter_class */
|
|
void dMeter_menuPlusMove(sub_meter_class* i_Meter) {
|
|
f32 fVar1;
|
|
int iVar3;
|
|
f32 x;
|
|
f32 y;
|
|
f32 dVar13;
|
|
f32 dVar12;
|
|
|
|
static s16 moveFlag = 0;
|
|
static s16 moveStatus = 0;
|
|
f32 local_98_x[] = {0.0f, 0.0f, 0.0f};
|
|
f32 local_98_y[] = {0.0f, 0.0f, 0.0f};
|
|
if (i_Meter->field_0x0100[0].mUserArea != (s16)dComIfGs_isDungeonItemCompass()) {
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 == 0x0) {
|
|
if (dMap_isEnableDispMap()) {
|
|
dMeter_mMapCtrlDisp.field_0x0 = 0x1;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 0;
|
|
}
|
|
i_Meter->field_0x3029 = 1;
|
|
}
|
|
i_Meter->field_0x3027 = 0;
|
|
i_Meter->field_0x0100[0].mUserArea = dComIfGs_isDungeonItemCompass();
|
|
}
|
|
if (
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK4000_e) ||
|
|
fopOvlpM_IsDoingReq() ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x100)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK8_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK10_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK80000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK800_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK1000_e) ||
|
|
(
|
|
(!(i_Meter->mStatusFlags & dMtrStts_UNK400_e) &&
|
|
(strcmp(dComIfGp_getNextStageName(), "MajyuE") == 0)) &&
|
|
!dComIfGs_isEventBit(dSv_event_flag_c::UNK_0801)
|
|
) ||
|
|
(
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK400_e) &&
|
|
(
|
|
strcmp(dComIfGp_getNextStageName(), "Hyrule") == 0 ||
|
|
strcmp(dComIfGp_getNextStageName(), "Hyroom") == 0 ||
|
|
strcmp(dComIfGp_getNextStageName(), "kenroom") == 0
|
|
)
|
|
) ||
|
|
dComIfGp_getMiniGameType() == 1 ||
|
|
dComIfGp_getMiniGameType() == 6
|
|
) {
|
|
if (moveStatus != 1) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 1;
|
|
} else {
|
|
if (i_Meter->field_0x3020 == 1 || i_Meter->field_0x3020 == 2) {
|
|
if (((s32)dMeter_mMapCtrlDisp.field_0x0 != 0x0) && dMap_isEnableDispMap()) {
|
|
if (moveStatus != 2) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 2;
|
|
} else if (dMap_isEnableDispMap()) {
|
|
if (moveStatus != 3) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 3;
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK400_e) && (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) != dSv_save_c::STAGE_TOTG)) {
|
|
if (moveStatus != 7) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 7;
|
|
} else {
|
|
if (moveStatus != 6) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 6;
|
|
}
|
|
} else if (i_Meter->field_0x3020 == 5 || i_Meter->field_0x3020 == 9 || i_Meter->field_0x3020 == 3) {
|
|
if (moveStatus != 4) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 4;
|
|
} else {
|
|
if (moveStatus != 5) {
|
|
moveFlag = 1;
|
|
}
|
|
moveStatus = 5;
|
|
}
|
|
}
|
|
if (moveFlag != 0) {
|
|
if (i_Meter->field_0x02c0.mUserArea >= 5) {
|
|
i_Meter->field_0x02c0.mUserArea = 5;
|
|
} else {
|
|
i_Meter->field_0x02c0.mUserArea++;
|
|
}
|
|
switch (moveStatus) {
|
|
case 2:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
i_Meter->field_0x02c0.pane->hide();
|
|
sMainParts1->search('cry1')->hide();
|
|
sMainParts1->search('cry3')->hide();
|
|
i_Meter->field_0x0100[0].pane->show();
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) ||
|
|
(dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1 && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
i_Meter->field_0x0100[1].pane->show();
|
|
} else {
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
}
|
|
i_Meter->field_0x0100[2].pane->show();
|
|
moveFlag = 0;
|
|
break;
|
|
case 3:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
i_Meter->field_0x02c0.pane->show();
|
|
sMainParts1->search('cry1')->show();
|
|
i_Meter->field_0x0100[0].pane->hide();
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) ||
|
|
(dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1 && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
i_Meter->field_0x0100[1].pane->show();
|
|
sMainParts1->search('cry3')->show();
|
|
} else {
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
sMainParts1->search('cry3')->hide();
|
|
}
|
|
i_Meter->field_0x0100[2].pane->hide();
|
|
moveFlag = 0;
|
|
break;
|
|
case 4:
|
|
x = g_meterHIO.field_0x9c + 0x52;
|
|
y = g_meterHIO.field_0x9e;
|
|
i_Meter->field_0x02c0.pane->show();
|
|
sMainParts1->search('cry1')->show();
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) ||
|
|
(dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1 && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
sMainParts1->search('cry3')->show();
|
|
} else {
|
|
sMainParts1->search('cry3')->hide();
|
|
}
|
|
i_Meter->field_0x0100[0].pane->hide();
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
i_Meter->field_0x0100[2].pane->hide();
|
|
moveFlag = 0;
|
|
break;
|
|
case 5:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
i_Meter->field_0x02c0.pane->hide();
|
|
sMainParts1->search('cry1')->hide();
|
|
sMainParts1->search('cry3')->hide();
|
|
i_Meter->field_0x0100[0].pane->hide();
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) ||
|
|
(dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1 && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
i_Meter->field_0x0100[1].pane->show();
|
|
} else {
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
}
|
|
i_Meter->field_0x0100[2].pane->show();
|
|
moveFlag = 0;
|
|
break;
|
|
case 6:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0) ||
|
|
(dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1 && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
i_Meter->field_0x02c0.pane->show();
|
|
sMainParts1->search('cry1')->hide();
|
|
sMainParts1->search('cry3')->show();
|
|
} else {
|
|
i_Meter->field_0x02c0.pane->hide();
|
|
sMainParts1->search('cry1')->hide();
|
|
sMainParts1->search('cry3')->hide();
|
|
}
|
|
i_Meter->field_0x0100[0].pane->hide();
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
i_Meter->field_0x0100[2].pane->hide();
|
|
moveFlag = 0;
|
|
break;
|
|
case 7:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
if ((dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) && (dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0)) ||
|
|
((dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 1) && !(i_Meter->mStatusFlags & dMtrStts_UNK400000_e)))
|
|
{
|
|
i_Meter->field_0x02c0.pane->show();
|
|
sMainParts1->search('cry1')->show();
|
|
sMainParts1->search('cry3')->show();
|
|
} else {
|
|
i_Meter->field_0x02c0.pane->hide();
|
|
sMainParts1->search('cry1')->show();
|
|
sMainParts1->search('cry3')->hide();
|
|
}
|
|
i_Meter->field_0x0100[0].pane->hide();
|
|
i_Meter->field_0x0100[1].pane->hide();
|
|
i_Meter->field_0x0100[2].pane->hide();
|
|
moveFlag = 0;
|
|
break;
|
|
default:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
break;
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x02c0.mUserArea <= 0) {
|
|
i_Meter->field_0x02c0.mUserArea = 0;
|
|
} else {
|
|
i_Meter->field_0x02c0.mUserArea--;
|
|
}
|
|
switch (moveStatus) {
|
|
case 2:
|
|
case 3:
|
|
case 6:
|
|
case 7:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
break;
|
|
case 4:
|
|
x = g_meterHIO.field_0x9c + 0x52;
|
|
y = g_meterHIO.field_0x9e;
|
|
break;
|
|
case 5:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
break;
|
|
default:
|
|
x = g_meterHIO.field_0x9c;
|
|
y = g_meterHIO.field_0x9e;
|
|
break;
|
|
}
|
|
}
|
|
if (moveStatus == 4 || moveStatus == 5) {
|
|
local_98_x[0] = ((i_Meter->field_0x12f0.mPosCenter.x + i_Meter->field_0x12f0.mSize.x / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.x) -
|
|
i_Meter->field_0x0100[0].mSizeOrig.x / 2.0f;
|
|
fVar1 = i_Meter->field_0x12f0.mPosCenter.y;
|
|
local_98_y[0] = fVar1 - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
|
local_98_x[1] = i_Meter->field_0x12f0.mPosCenter.x - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
|
local_98_y[1] =
|
|
((fVar1 - i_Meter->field_0x12f0.mSize.y / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.y) - i_Meter->field_0x0100[1].mSizeOrig.y / 2.0f;
|
|
local_98_x[2] = i_Meter->field_0x0100[2].mSizeOrig.x / 2.0f +
|
|
((i_Meter->field_0x1948.mPosCenter.x + i_Meter->field_0x16e0.mSize.x / 2.0f) - i_Meter->field_0x0100[2].mPosCenterOrig.x);
|
|
local_98_y[2] = i_Meter->field_0x1948.mPosCenter.y - i_Meter->field_0x0100[2].mPosCenterOrig.y;
|
|
} else {
|
|
s16 width = dMap_c::getMapDspSizeWidth();
|
|
s16 left = dMap_getMapDispPosLeftUpX();
|
|
local_98_x[2] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
|
local_98_x[1] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
|
local_98_x[0] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
|
s16 height = dMap_c::getMapDspSizeHeight();
|
|
s16 top = dMap_getMapDispPosLeftUpY();
|
|
local_98_y[2] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
|
local_98_y[1] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
|
local_98_y[0] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
|
}
|
|
dVar13 = dMap_getMapDispPosLeftUpX() - 0x19;
|
|
dVar12 = dMap_getMapDispPosLeftUpY() - 0x152;
|
|
cXyz* pcVar4 = dKyw_get_wind_vec();
|
|
iVar3 = cM_atan2s(pcVar4->x, pcVar4->z);
|
|
i_Meter->field_0x02f8.pane->rotate(
|
|
i_Meter->field_0x02f8.mSizeOrig.x, i_Meter->field_0x02f8.mSizeOrig.y / 2.0f, ROTATE_Z, (iVar3 * 180.0f) / 0x8000 - 180.0f
|
|
);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x02c0, x, y);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x02f8, (dVar13 - 7.0f) + g_meterHIO.field_0x64, (dVar12 + 9.0f) + g_meterHIO.field_0x66);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x0100[i], x + local_98_x[i], y + local_98_y[i]);
|
|
}
|
|
dVar13 = fopMsgM_valueIncrease(5, 5 - i_Meter->field_0x02c0.mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x02c0, dVar13);
|
|
dMap_c::setMapAlpha(dVar13 * 255.0f);
|
|
if (!dKyw_gbwind_use_check() || dMenu_flag()) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x02f8);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x02f8, dVar13);
|
|
}
|
|
|
|
for (s32 i = 0; i < 3; i++) {
|
|
if (!dMenu_flag()) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x0100[i], dVar13);
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x0100[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801FBB28-801FBC70 .text dMeter_magicLength__FP15sub_meter_classf */
|
|
void dMeter_magicLength(sub_meter_class* i_Meter, f32 param_2) {
|
|
f32 dVar1 = (i_Meter->field_0x0f38[0].mSizeOrig.x * 8.0f);
|
|
i_Meter->field_0x10f8.mSize.x = (dVar1 * param_2) + (i_Meter->field_0x10f8.mSizeOrig.x - dVar1);
|
|
i_Meter->field_0x10f8.mPosCenter.x = i_Meter->field_0x10f8.mPosTopLeftOrig.x + i_Meter->field_0x10f8.mSize.x / 2.0f;
|
|
fopMsgM_cposMove(&i_Meter->field_0x10f8);
|
|
((MyPicture*)i_Meter->field_0x11a0.pane)->m134 = 1;
|
|
((MyPicture*)i_Meter->field_0x11a0.pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x11a0.pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x11a0.pane)->m12C = 1.6875f;
|
|
((MyPicture*)i_Meter->field_0x11a0.pane)->m130 = 0.8125f;
|
|
i_Meter->field_0x11a0.mSize.x = i_Meter->field_0x10f8.mSize.x + (i_Meter->field_0x11a0.mSizeOrig.x - i_Meter->field_0x10f8.mSizeOrig.x);
|
|
i_Meter->field_0x11a0.mPosCenter.x = i_Meter->field_0x11a0.mPosTopLeftOrig.x + i_Meter->field_0x11a0.mSize.x / 2.0f;
|
|
fopMsgM_cposMove(&i_Meter->field_0x11a0);
|
|
((MyPicture*)i_Meter->field_0x1130.pane)->m134 = 1;
|
|
((MyPicture*)i_Meter->field_0x1130.pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x1130.pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x1130.pane)->m12C = 1.6875f;
|
|
((MyPicture*)i_Meter->field_0x1130.pane)->m130 = 0.8125f;
|
|
i_Meter->field_0x1130.mSize.x = i_Meter->field_0x10f8.mSize.x + (i_Meter->field_0x1130.mSizeOrig.x - i_Meter->field_0x10f8.mSizeOrig.x);
|
|
i_Meter->field_0x1130.mPosCenter.x = i_Meter->field_0x1130.mPosTopLeftOrig.x + i_Meter->field_0x1130.mSize.x / 2.0f;
|
|
fopMsgM_cposMove(&i_Meter->field_0x1130);
|
|
}
|
|
|
|
/* 801FBC70-801FBC90 .text dMeter_windInit__FP15sub_meter_class */
|
|
void dMeter_windInit(sub_meter_class* i_Meter) {
|
|
dMeter_windID = fpcM_ERROR_PROCESS_ID_e;
|
|
dMeter_windStatus = 0;
|
|
dComIfGp_setOperateWindCancelOff();
|
|
}
|
|
|
|
/* 801FBC90-801FBCEC .text dMeter_metronomeInit__FP15sub_meter_class */
|
|
void dMeter_metronomeInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x3028 = 0;
|
|
if (dMn_c != NULL) {
|
|
dMn_c->_delete();
|
|
delete dMn_c;
|
|
dMn_c = NULL;
|
|
}
|
|
}
|
|
|
|
/* 801FBCEC-801FBD7C .text dMeter_windMove__FP15sub_meter_class */
|
|
void dMeter_windMove(sub_meter_class* i_Meter) {
|
|
if (dMeter_windStatus != dComIfGp_getOperateWind()) {
|
|
if (dComIfGp_getOperateWind() == 2) {
|
|
dMeter_windID = fopMsgM_Create(fpcNm_OPERATE_WIND_e, NULL, NULL);
|
|
}
|
|
dMeter_windStatus = dComIfGp_getOperateWind();
|
|
} else {
|
|
if (dComIfGp_getOperateWind() != 2 && dMeter_windID != fpcM_ERROR_PROCESS_ID_e && fopMsgM_SearchByID(dMeter_windID) == NULL) {
|
|
dMeter_windID = fpcM_ERROR_PROCESS_ID_e;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801FBD7C-801FBF24 .text dMeter_metronomeMove__FP15sub_meter_class */
|
|
void dMeter_metronomeMove(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_getMetronome() && !(i_Meter->mStatusFlags & dMtrStts_UNK8_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK10_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e))
|
|
{
|
|
if (i_Meter->field_0x3028 == 0 && dMn_c == NULL) {
|
|
dMn_c = new dMetronome_c();
|
|
JUT_ASSERT(9008, dMn_c != NULL);
|
|
dMn_c->_create();
|
|
dMn_c->initialize();
|
|
}
|
|
if (dMn_c != NULL && ((u8)dMn_c->_open() != 0)) {
|
|
dMn_c->_move();
|
|
}
|
|
i_Meter->field_0x3028 = 1;
|
|
} else {
|
|
if (i_Meter->field_0x3028 == 1) {
|
|
if (dMn_c != NULL) {
|
|
if ((u8)dMn_c->_close() == 0) {
|
|
dMn_c->_move();
|
|
} else {
|
|
i_Meter->field_0x3028 = 2;
|
|
}
|
|
}
|
|
} else if (i_Meter->field_0x3028 == 2 && dMn_c != NULL) {
|
|
i_Meter->field_0x3028 = 0;
|
|
dMn_c->_delete();
|
|
delete dMn_c;
|
|
dMn_c = NULL;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801FBF24-801FC190 .text dMeter_rupyAlpha__FP15sub_meter_class */
|
|
void dMeter_rupyAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar7;
|
|
f32 fVar8;
|
|
cXyz local_2c;
|
|
cXyz local_38;
|
|
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x80)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80_e) || (i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK400000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK8_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK10_e) || (i_Meter->mStatusFlags & dMtrStts_UNK800000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20_e) ||
|
|
(dComIfGp_getMiniGameType() == 1 || dComIfGp_getMiniGameType() == 6))
|
|
{
|
|
dVar7 = dMeter_alphaClose(&i_Meter->field_0x2a20.mUserArea, &i_Meter->field_0x19f0[0].mUserArea);
|
|
if (i_Meter->mpRupyParticle != NULL) {
|
|
i_Meter->mpRupyParticle->stopDrawParticle();
|
|
} else {
|
|
local_2c.set(i_Meter->field_0x2a20.mPosCenter.x - 320.0f, i_Meter->field_0x2a20.mPosCenter.y - 240.0f, 0.0f);
|
|
i_Meter->mpRupyParticle = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_2c);
|
|
}
|
|
} else {
|
|
fVar8 = dMeter_alphaOpen(&i_Meter->field_0x2a20.mUserArea, &i_Meter->field_0x19f0[0].mUserArea);
|
|
dVar7 = fVar8;
|
|
if (i_Meter->mpRupyParticle != NULL) {
|
|
i_Meter->mpRupyParticle->playDrawParticle();
|
|
} else {
|
|
local_38.set(i_Meter->field_0x2a20.mPosCenter.x - 320.0f, i_Meter->field_0x2a20.mPosCenter.y - 240.0f, 0.0f);
|
|
i_Meter->mpRupyParticle = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_38);
|
|
}
|
|
}
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x19f0[i], dVar7);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1b40[i], dVar7);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2a20, dVar7);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2a58, dVar7);
|
|
}
|
|
|
|
/* 801FC190-801FC2FC .text dMeter_rupyInit__FP15sub_meter_class */
|
|
void dMeter_rupyInit(sub_meter_class* i_Meter) {
|
|
char acStack_3c[16];
|
|
int local_2c[5];
|
|
cXyz local_48;
|
|
|
|
i_Meter->field_0x2a20.mUserArea = 0;
|
|
i_Meter->field_0x19f0[0].mUserArea = 0;
|
|
i_Meter->field_0x19f0[0].mUserArea = 1;
|
|
i_Meter->mRupyCount = dComIfGs_getRupee();
|
|
local_2c[0] = i_Meter->mRupyCount / 1000;
|
|
local_2c[1] = (i_Meter->mRupyCount % 1000) / 100;
|
|
local_2c[2] = (i_Meter->mRupyCount % 100) / 10;
|
|
local_2c[3] = i_Meter->mRupyCount % 10;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
dMeter_rupy_num(acStack_3c, local_2c[i]);
|
|
((J2DPicture*)i_Meter->field_0x19f0[i].pane)->changeTexture(acStack_3c, 0);
|
|
((J2DPicture*)i_Meter->field_0x1b40[i].pane)->changeTexture(acStack_3c, 0);
|
|
}
|
|
g_dComIfG_gameInfo.play.mItemNowRupee = i_Meter->mRupyCount;
|
|
local_48.set(i_Meter->field_0x2a20.mPosCenter.x - 320.0f, i_Meter->field_0x2a20.mPosCenter.y - 240.0f, 0.0f);
|
|
i_Meter->mpRupyParticle = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_48);
|
|
}
|
|
|
|
/* 801FC2FC-801FC624 .text dMeter_rupyMove__FP15sub_meter_class */
|
|
void dMeter_rupyMove(sub_meter_class* i_Meter) {
|
|
int local_28[4];
|
|
char acStack_38[16];
|
|
|
|
if (i_Meter->field_0x19f0[1].mUserArea != dComIfGs_getWalletSize()) {
|
|
dMeter_walletChange(i_Meter);
|
|
i_Meter->field_0x19f0[1].mUserArea = dComIfGs_getWalletSize();
|
|
}
|
|
if (dComIfGp_getItemRupeeCount() != 0) {
|
|
int targetRupees = (dComIfGs_getRupee() + dComIfGp_getItemRupeeCount());
|
|
int maxRupees;
|
|
if (dComIfGs_getWalletSize() == 0) {
|
|
maxRupees = 200;
|
|
} else if (dComIfGs_getWalletSize() == 1) {
|
|
maxRupees = 1000;
|
|
} else {
|
|
maxRupees = 5000;
|
|
}
|
|
if (targetRupees > maxRupees) {
|
|
targetRupees = maxRupees;
|
|
} else if (targetRupees < 0) {
|
|
targetRupees = 0;
|
|
}
|
|
i_Meter->mAdjustRupy = targetRupees - i_Meter->mRupyCount;
|
|
dComIfGs_setRupee(targetRupees);
|
|
g_dComIfG_gameInfo.play.mItemRupeeCount = 0;
|
|
if (labs(i_Meter->mAdjustRupy) >= 5) {
|
|
rupy_soundOnFlag = 1;
|
|
}
|
|
}
|
|
if (i_Meter->mAdjustRupy != 0) {
|
|
if (i_Meter->mAdjustRupy > 0) {
|
|
i_Meter->mRupyCount++;
|
|
i_Meter->mAdjustRupy--;
|
|
if (rupy_soundOnFlag != 0) {
|
|
if (i_Meter->mAdjustRupy != 0) {
|
|
if (rupy_soundSetFlag == 0) {
|
|
mDoAud_seStart(JA_SE_LUPY_INC_CNT_1);
|
|
rupy_soundSetFlag = 1;
|
|
} else {
|
|
rupy_soundSetFlag = 0;
|
|
}
|
|
} else {
|
|
mDoAud_seStart(JA_SE_LUPY_INC_CNT_2);
|
|
rupy_soundSetFlag = 0;
|
|
rupy_soundOnFlag = 0;
|
|
}
|
|
}
|
|
} else {
|
|
if (i_Meter->mAdjustRupy < 0) {
|
|
i_Meter->mRupyCount--;
|
|
i_Meter->mAdjustRupy++;
|
|
if (rupy_soundOnFlag != 0) {
|
|
if (i_Meter->mAdjustRupy != 0) {
|
|
if (rupy_soundSetFlag == 0) {
|
|
mDoAud_seStart(JA_SE_LUPY_DEC_CNT_1);
|
|
rupy_soundSetFlag = 1;
|
|
} else {
|
|
rupy_soundSetFlag = 0;
|
|
}
|
|
} else {
|
|
mDoAud_seStart(JA_SE_LUPY_DEC_CNT_2);
|
|
rupy_soundSetFlag = 0;
|
|
rupy_soundOnFlag = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int uVar3 = i_Meter->mRupyCount;
|
|
local_28[0] = uVar3 / 1000;
|
|
local_28[1] = (uVar3 % 1000) / 100;
|
|
local_28[2] = (uVar3 % 100) / 10;
|
|
local_28[3] = uVar3 % 10;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
dMeter_rupy_num(acStack_38, local_28[i]);
|
|
((J2DPicture*)i_Meter->field_0x19f0[i].pane)->changeTexture(acStack_38, 0);
|
|
((J2DPicture*)i_Meter->field_0x1b40[i].pane)->changeTexture(acStack_38, 0);
|
|
}
|
|
g_dComIfG_gameInfo.play.mItemNowRupee = i_Meter->mRupyCount;
|
|
}
|
|
dMeter_rupyAlpha(i_Meter);
|
|
}
|
|
|
|
/* 801FC624-801FC85C .text dMeter_walletChange__FP15sub_meter_class */
|
|
void dMeter_walletChange(sub_meter_class* i_Meter) {
|
|
if (dComIfGs_getWalletSize() == 0) {
|
|
f32 x = (i_Meter->field_0x19f0[1].mPosTopLeftOrig.x - i_Meter->field_0x19f0[0].mPosTopLeftOrig.x);
|
|
i_Meter->field_0x19f0[0].pane->hide();
|
|
i_Meter->field_0x1b40[0].pane->hide();
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setBlack(0x0A280A00);
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setWhite(0x28FF28FF);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a20, x, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a58, x, 0.0f);
|
|
} else if (dComIfGs_getWalletSize() == 1) {
|
|
i_Meter->field_0x19f0[0].pane->show();
|
|
i_Meter->field_0x1b40[0].pane->show();
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setBlack(0x1414A000);
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setWhite(0x32C8FFFF);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a20, 0.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a58, 0.0f, 0.0f);
|
|
} else {
|
|
i_Meter->field_0x19f0[0].pane->show();
|
|
i_Meter->field_0x1b40[0].pane->show();
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setBlack(0x50280000);
|
|
((J2DPicture*)i_Meter->field_0x2a20.pane)->setWhite(0xFF8C00FF);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a20, 0.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2a58, 0.0f, 0.0f);
|
|
}
|
|
}
|
|
|
|
/* 801FC85C-801FCA98 .text dMeter_keyLight__FP18fopMsgM_pane_classPsf */
|
|
void dMeter_keyLight(fopMsgM_pane_class* param_1, s16* param_2, f32 param_3) {
|
|
f32 dVar6;
|
|
f32 dVar7;
|
|
f32 dVar8;
|
|
f32 dVar10;
|
|
|
|
if (param_1->mUserArea < param_2[0]) {
|
|
dVar8 = 0.0f;
|
|
dVar7 = dVar8;
|
|
} else if (param_1->mUserArea < param_2[1]) {
|
|
dVar6 = fopMsgM_valueIncrease(param_2[1] - param_2[0], param_1->mUserArea - param_2[0], 0);
|
|
dVar8 = (dVar6 * 0.8f) + 0.2f;
|
|
dVar7 = dVar6 * 170.0f;
|
|
} else if (param_1->mUserArea < param_2[2]) {
|
|
dVar6 = fopMsgM_valueIncrease(param_2[2] - param_2[1], param_1->mUserArea - param_2[1], 0);
|
|
dVar8 = 1.0f - (dVar6 * 0.2f);
|
|
dVar7 = 170.0f - (dVar6 * 90.0f);
|
|
} else if (param_1->mUserArea < param_2[3]) {
|
|
dVar6 = fopMsgM_valueIncrease(param_2[3] - param_2[2], param_1->mUserArea - param_2[2], 0);
|
|
dVar8 = (dVar6 * 0.2f) + 0.8f;
|
|
dVar7 = (dVar6 * 90.0f) + 80.0f;
|
|
} else {
|
|
dVar6 = fopMsgM_valueIncrease(param_2[4] - param_2[3], param_1->mUserArea - param_2[3], 0);
|
|
dVar8 = 1.0f;
|
|
dVar7 = 170.0f - (dVar6 * 170.0f);
|
|
}
|
|
if (param_1->mUserArea < param_2[4]) {
|
|
param_1->mUserArea++;
|
|
} else {
|
|
param_1->mUserArea = 1;
|
|
}
|
|
dVar10 = param_1->mSizeOrig.x * dVar8;
|
|
f32 dVar9 = param_1->mSizeOrig.y * dVar8;
|
|
f32 x = param_1->mPosTopLeftOrig.x - (dVar10 - param_1->mSizeOrig.x) / 2.0f;
|
|
f32 y = param_1->mPosTopLeftOrig.y - (dVar9 - param_1->mSizeOrig.y) / 2.0f;
|
|
param_1->pane->move(x, y);
|
|
param_1->pane->resize(dVar10, dVar9);
|
|
J2DPane* j2dPane = param_1->pane;
|
|
j2dPane->mBasePosition.x = (dVar10 / 2.0f);
|
|
j2dPane->mBasePosition.y = (dVar9 / 2.0f);
|
|
j2dPane->mRotationAxis = ROTATE_Z;
|
|
j2dPane->calcMtx();
|
|
param_1->mNowAlpha = dVar7 * param_3;
|
|
}
|
|
|
|
/* 801FCA98-801FCCA8 .text dMeter_keyRndLightFrame__FPs */
|
|
void dMeter_keyRndLightFrame(s16* param_1) {
|
|
param_1[0] = g_meterHIO.field_0x90 + cM_rndFX(g_meterHIO.field_0x9a);
|
|
param_1[1] = (param_1[0] + g_meterHIO.field_0x88) + cM_rndFX(g_meterHIO.field_0x92);
|
|
param_1[2] = (param_1[1] + g_meterHIO.field_0x8a) + cM_rndFX(g_meterHIO.field_0x94);
|
|
param_1[3] = (param_1[2] + g_meterHIO.field_0x8c) + cM_rndFX(g_meterHIO.field_0x96);
|
|
param_1[4] = (param_1[3] + g_meterHIO.field_0x8e) + cM_rndFX(g_meterHIO.field_0x98);
|
|
}
|
|
|
|
/* 801FCCA8-801FCE68 .text dMeter_keyAlpha__FP15sub_meter_class */
|
|
void dMeter_keyAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar5;
|
|
s16 local_28[5];
|
|
|
|
local_28[0] = 0x1e;
|
|
local_28[1] = 0x28;
|
|
local_28[2] = 0x2d;
|
|
local_28[3] = 0x32;
|
|
local_28[4] = 0x3A;
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x40)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80_e) || (i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK400000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK400_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK8_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10_e) || (i_Meter->mStatusFlags & dMtrStts_UNK800000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20_e))
|
|
{
|
|
dVar5 = dMeter_alphaClose(&i_Meter->field_0x1c90.mUserArea, &i_Meter->field_0x1ad0[0].mUserArea);
|
|
} else if (dStage_stagInfo_ChkKeyDisp(dComIfGp_getStageStagInfo()) != 0) {
|
|
dVar5 = dMeter_alphaOpen(&i_Meter->field_0x1c90.mUserArea, &i_Meter->field_0x1ad0[0].mUserArea);
|
|
} else {
|
|
dVar5 = dMeter_alphaClose(&i_Meter->field_0x1c90.mUserArea, &i_Meter->field_0x1ad0[0].mUserArea);
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1ad0[i], dVar5);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1c20[i], dVar5);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1c90, dVar5);
|
|
if (i_Meter->field_0x19b8.mUserArea == 1) {
|
|
dMeter_keyRndLightFrame(&i_Meter->field_0x2fda);
|
|
}
|
|
dMeter_keyLight(&i_Meter->field_0x1980, local_28, dVar5);
|
|
dMeter_keyLight(&i_Meter->field_0x19b8, &i_Meter->field_0x2fda, dVar5);
|
|
}
|
|
|
|
/* 801FCE68-801FCF28 .text dMeter_keyInit__FP15sub_meter_class */
|
|
void dMeter_keyInit(sub_meter_class* i_Meter) {
|
|
int local_38[2];
|
|
char acStack_30[24];
|
|
|
|
i_Meter->field_0x19b8.mUserArea = 1;
|
|
i_Meter->field_0x1980.mUserArea = 1;
|
|
i_Meter->field_0x1c90.mUserArea = 0;
|
|
i_Meter->field_0x1ad0[0].mUserArea = 0;
|
|
i_Meter->field_0x301d = dComIfGs_getKeyNum();
|
|
local_38[0] = i_Meter->field_0x301d / 10;
|
|
local_38[1] = i_Meter->field_0x301d % 10;
|
|
for (s32 i = 0; i < 2; i++) {
|
|
dMeter_rupy_num(acStack_30, local_38[i]);
|
|
fopMsgM_blendInit(&i_Meter->field_0x1ad0[i], acStack_30);
|
|
fopMsgM_blendInit(&i_Meter->field_0x1c20[i], acStack_30);
|
|
}
|
|
}
|
|
|
|
/* 801FCF28-801FD09C .text dMeter_keyMove__FP15sub_meter_class */
|
|
void dMeter_keyMove(sub_meter_class* i_Meter) {
|
|
s16 sVar1;
|
|
int local_38[2];
|
|
char acStack_30[24];
|
|
|
|
if (dStage_stagInfo_ChkKeyDisp(dComIfGp_getStageStagInfo())) {
|
|
if (dComIfGp_getItemKeyNumCount() != 0) {
|
|
sVar1 = dComIfGs_getKeyNum() + dComIfGp_getItemKeyNumCount();
|
|
if (sVar1 > 99) {
|
|
sVar1 = 99;
|
|
} else if (sVar1 < 0) {
|
|
sVar1 = 0;
|
|
}
|
|
i_Meter->field_0x300e = sVar1 - (u16)i_Meter->field_0x301d;
|
|
dComIfGs_setKeyNum((u8)sVar1);
|
|
g_dComIfG_gameInfo.play.mItemKeyNumCount = 0;
|
|
}
|
|
sVar1 = i_Meter->field_0x300e;
|
|
if (sVar1 != 0) {
|
|
if (sVar1 > 0) {
|
|
i_Meter->field_0x301d++;
|
|
i_Meter->field_0x300e--;
|
|
} else if (sVar1 < 0) {
|
|
i_Meter->field_0x301d--;
|
|
i_Meter->field_0x300e++;
|
|
}
|
|
local_38[0] = i_Meter->field_0x301d / 10;
|
|
local_38[1] = i_Meter->field_0x301d % 10;
|
|
for (s32 i = 0; i < 2; i++) {
|
|
dMeter_rupy_num(acStack_30, local_38[i]);
|
|
fopMsgM_blendDraw(&i_Meter->field_0x1ad0[i], acStack_30);
|
|
fopMsgM_blendDraw(&i_Meter->field_0x1c20[i], acStack_30);
|
|
}
|
|
}
|
|
}
|
|
dMeter_keyAlpha(i_Meter);
|
|
}
|
|
|
|
/* 801FD09C-801FD104 .text dMeter_compassRotate__FP18fopMsgM_pane_classP18fopMsgM_pane_classf */
|
|
void dMeter_compassRotate(fopMsgM_pane_class* param_1, fopMsgM_pane_class* param_2, f32 param_3) {
|
|
/* Nonmatching */
|
|
f32 offsetX = (param_1->pane->mBounds.f.x - param_1->pane->mBounds.i.x) / 2.0f;
|
|
f32 offsetY = (param_1->pane->mBounds.f.y - param_1->pane->mBounds.i.y) / 2.0f;
|
|
param_1->pane->rotate(offsetX, offsetY, ROTATE_Z, param_3);
|
|
}
|
|
|
|
/* 801FD104-801FD410 .text dMeter_compassGetOnProc__FP15sub_meter_class */
|
|
void dMeter_compassGetOnProc(sub_meter_class* i_Meter) {
|
|
switch (i_Meter->field_0x3020) {
|
|
case 1:
|
|
if (((s32)dMeter_mMapCtrlDisp.field_0x0 != 0) &&
|
|
(!(i_Meter->mStatusFlags & dMtrStts_UNK400_e) || dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_TOTG))
|
|
{
|
|
i_Meter->field_0x3020 = 2;
|
|
i_Meter->field_0x3029 = 1;
|
|
} else {
|
|
i_Meter->field_0x3020 = 5;
|
|
i_Meter->field_0x12f0.pane->show();
|
|
dMeter_clockShow(i_Meter);
|
|
dMeter_compassDirOpen(i_Meter);
|
|
i_Meter->field_0x3029 = 0;
|
|
}
|
|
break;
|
|
case 2:
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 == 0) {
|
|
i_Meter->field_0x12f0.pane->show();
|
|
dMeter_clockShow(i_Meter);
|
|
i_Meter->field_0x3020 = 5;
|
|
dMeter_compassDirOpen(i_Meter);
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW);
|
|
}
|
|
break;
|
|
case 5:
|
|
dMeter_compassDirOpen(i_Meter);
|
|
break;
|
|
case 3:
|
|
if ((CPad_CHECK_TRIG_RIGHT(0) && !CPad_CHECK_TRIG_UP(0) && !CPad_CHECK_TRIG_DOWN(0)) || i_Meter->field_0x1948.mUserArea != 0) {
|
|
i_Meter->field_0x3020 = 6;
|
|
i_Meter->field_0x1948.mUserArea = 1;
|
|
dMeter_compassWindOpen(i_Meter);
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW);
|
|
}
|
|
break;
|
|
case 6:
|
|
if (CPad_CHECK_TRIG_LEFT(0) && !CPad_CHECK_TRIG_UP(0) && !CPad_CHECK_TRIG_DOWN(0)) {
|
|
i_Meter->field_0x3020 = 8;
|
|
i_Meter->field_0x1948.mUserArea = 0;
|
|
dMeter_compassWindClose(i_Meter);
|
|
} else {
|
|
dMeter_compassWindOpen(i_Meter);
|
|
}
|
|
break;
|
|
case 8:
|
|
if (CPad_CHECK_TRIG_RIGHT(0) && !CPad_CHECK_TRIG_UP(0) && !CPad_CHECK_TRIG_DOWN(0)) {
|
|
i_Meter->field_0x3020 = 6;
|
|
i_Meter->field_0x1948.mUserArea = 1;
|
|
dMeter_compassWindOpen(i_Meter);
|
|
} else {
|
|
dMeter_compassWindClose(i_Meter);
|
|
}
|
|
break;
|
|
case 9:
|
|
dMeter_compassDirClose(i_Meter);
|
|
break;
|
|
case 7:
|
|
dMeter_compassAnimeMove(i_Meter);
|
|
break;
|
|
}
|
|
f32 dVar3 = (-(s16)(fopAcM_SearchByName(fpcNm_SHIP_e)->shape_angle.y + 0x8000) * 180.0f) / 0x8000;
|
|
dMeter_compassRotate(&i_Meter->field_0x1670, &i_Meter->field_0x16a8, (-dComIfGs_getTime() - 90.0f));
|
|
dMeter_compassRotate(&i_Meter->field_0x1248, &i_Meter->field_0x12f0, dVar3);
|
|
dMeter_compassRotate(&i_Meter->field_0x1280, &i_Meter->field_0x12f0, dVar3);
|
|
dMeter_clockMove(i_Meter);
|
|
}
|
|
|
|
/* 801FD410-801FD48C .text dMeter_compassGetOffProc__FP15sub_meter_class */
|
|
void dMeter_compassGetOffProc(sub_meter_class* i_Meter) {
|
|
switch (i_Meter->field_0x3020) {
|
|
case 3:
|
|
case 5:
|
|
i_Meter->field_0x3020 = 9;
|
|
case 9:
|
|
dMeter_compassDirClose(i_Meter);
|
|
break;
|
|
case 6:
|
|
case 7:
|
|
i_Meter->field_0x3020 = 8;
|
|
i_Meter->field_0x1948.mUserArea = 0;
|
|
case 8:
|
|
dMeter_compassWindClose(i_Meter);
|
|
break;
|
|
default:
|
|
dMeter_compassValueInit(i_Meter);
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 801FD48C-801FD6C8 .text dMeter_compassDirOpen__FP15sub_meter_class */
|
|
void dMeter_compassDirOpen(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
f32 dVar9;
|
|
f32 dVar8;
|
|
f32 dVar7;
|
|
f32 dVar6;
|
|
f32 dVar5;
|
|
f32 fVar1;
|
|
|
|
fVar1 = i_Meter->field_0x13d0.pane->mBounds.f.x - i_Meter->field_0x13d0.pane->mBounds.i.x;
|
|
dVar9 = ((i_Meter->field_0x1948.pane->mBounds.f.x - i_Meter->field_0x1948.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
dVar8 = ((i_Meter->field_0x1948.pane->mBounds.f.y - i_Meter->field_0x1948.pane->mBounds.i.y) / 2.0f);
|
|
dVar7 = ((i_Meter->field_0x16a8.pane->mBounds.f.x - i_Meter->field_0x16a8.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
dVar6 = ((i_Meter->field_0x16a8.pane->mBounds.f.y - i_Meter->field_0x16a8.pane->mBounds.i.y) / 2.0f);
|
|
i_Meter->field_0x12f0.mUserArea++;
|
|
if (i_Meter->field_0x12f0.mUserArea >= 5) {
|
|
i_Meter->field_0x12f0.mUserArea = 5;
|
|
i_Meter->field_0x3020 = 3;
|
|
dVar5 = 0.0f;
|
|
if (i_Meter->field_0x302a != 0) {
|
|
i_Meter->field_0x302a = 0;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW_END);
|
|
}
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(5, 5 - i_Meter->field_0x12f0.mUserArea, 0);
|
|
dVar5 = (dVar5 * -(i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1948.mSizeOrig.x));
|
|
if (i_Meter->field_0x302a == 0) {
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_COMPASS_MOVE);
|
|
}
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x12f0, dVar5, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x16a8, dVar5, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1948, dVar5, 0.0f);
|
|
i_Meter->field_0x16a8.pane->rotate(dVar7, dVar6, ROTATE_Z, 180.0f);
|
|
i_Meter->field_0x1948.pane->rotate(dVar9, dVar8, ROTATE_Z, 180.0f);
|
|
}
|
|
|
|
/* 801FD6C8-801FD8C0 .text dMeter_compassWindOpen__FP15sub_meter_class */
|
|
void dMeter_compassWindOpen(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
f32 fVar1 = i_Meter->field_0x13d0.pane->mBounds.f.x - i_Meter->field_0x13d0.pane->mBounds.i.x;
|
|
f32 dVar9 = ((i_Meter->field_0x1948.pane->mBounds.f.x - i_Meter->field_0x1948.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
f32 dVar8 = ((i_Meter->field_0x1948.pane->mBounds.f.y - i_Meter->field_0x1948.pane->mBounds.i.y) / 2.0f);
|
|
f32 dVar7 = ((i_Meter->field_0x16a8.pane->mBounds.f.x - i_Meter->field_0x16a8.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
f32 dVar6 = ((i_Meter->field_0x16a8.pane->mBounds.f.y - i_Meter->field_0x16a8.pane->mBounds.i.y) / 2.0f);
|
|
i_Meter->field_0x12f0.mUserArea++;
|
|
f32 dVar5;
|
|
if (i_Meter->field_0x12f0.mUserArea >= 10) {
|
|
i_Meter->field_0x12f0.mUserArea = 10;
|
|
i_Meter->field_0x3020 = 7;
|
|
dVar5 = 0.0f;
|
|
if (i_Meter->field_0x302a != 0) {
|
|
i_Meter->field_0x302a = 0;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW_END);
|
|
}
|
|
} else {
|
|
dVar5 = (fopMsgM_valueIncrease(5, 10 - i_Meter->field_0x12f0.mUserArea, 0) * -180.0f);
|
|
if (i_Meter->field_0x302a == 0) {
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_COMPASS_MOVE);
|
|
}
|
|
}
|
|
i_Meter->field_0x16a8.pane->rotate(dVar7, dVar6, ROTATE_Z, dVar5);
|
|
i_Meter->field_0x1948.pane->rotate(dVar9, dVar8, ROTATE_Z, dVar5);
|
|
}
|
|
|
|
/* 801FD8C0-801FDB64 .text dMeter_compassWindClose__FP15sub_meter_class */
|
|
void dMeter_compassWindClose(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
s16 sVar6;
|
|
f32 dVar11;
|
|
f32 dVar10;
|
|
f32 dVar9;
|
|
f32 dVar8;
|
|
f32 dVar7;
|
|
f32 fVar1;
|
|
|
|
fVar1 = i_Meter->field_0x13d0.pane->mBounds.f.x - i_Meter->field_0x13d0.pane->mBounds.i.x;
|
|
dVar11 = ((i_Meter->field_0x1948.pane->mBounds.f.x - i_Meter->field_0x1948.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
dVar10 = ((i_Meter->field_0x1948.pane->mBounds.f.y - i_Meter->field_0x1948.pane->mBounds.i.y) / 2.0f);
|
|
dVar9 = ((i_Meter->field_0x16a8.pane->mBounds.f.x - i_Meter->field_0x16a8.pane->mBounds.i.x) / 2.0f - (fVar1 / 2.0f));
|
|
dVar8 = ((i_Meter->field_0x16a8.pane->mBounds.f.y - i_Meter->field_0x16a8.pane->mBounds.i.y) / 2.0f);
|
|
i_Meter->field_0x12f0.mUserArea--;
|
|
if (dComIfGs_getTime() >= 90.0f && dComIfGs_getTime() < 270.0f) {
|
|
sVar6 = 0;
|
|
} else {
|
|
sVar6 = 1;
|
|
}
|
|
if (i_Meter->field_0x12f0.mUserArea <= 5) {
|
|
i_Meter->field_0x12f0.mUserArea = 5;
|
|
if ((dComIfGp_roomControl_getTimePass() && !i_Meter->field_0x2f68) ||
|
|
(!dComIfGp_roomControl_getTimePass() && i_Meter->field_0x2f68) ||
|
|
(!dComIfGp_roomControl_getTimePass() && i_Meter->field_0x3012 != sVar6))
|
|
{
|
|
dMeter_clockShow(i_Meter);
|
|
i_Meter->field_0x3020 = 6;
|
|
i_Meter->field_0x1948.mUserArea = 1;
|
|
} else {
|
|
i_Meter->field_0x3020 = 3;
|
|
}
|
|
dVar7 = -180.0f;
|
|
if (i_Meter->field_0x302a != 0) {
|
|
i_Meter->field_0x302a = 0;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW_END);
|
|
}
|
|
} else {
|
|
dVar7 = (fopMsgM_valueIncrease(5, 10 - i_Meter->field_0x12f0.mUserArea, 0) * -180.0f);
|
|
if (i_Meter->field_0x302a == 0) {
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_COMPASS_MOVE);
|
|
}
|
|
}
|
|
i_Meter->field_0x16a8.pane->rotate(dVar9, dVar8, ROTATE_Z, dVar7);
|
|
i_Meter->field_0x1948.pane->rotate(dVar11, dVar10, ROTATE_Z, dVar7);
|
|
}
|
|
|
|
/* 801FDB64-801FDDA4 .text dMeter_compassDirClose__FP15sub_meter_class */
|
|
void dMeter_compassDirClose(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
f32 dVar9;
|
|
f32 dVar8;
|
|
f32 dVar7;
|
|
f32 dVar6;
|
|
f32 dVar5;
|
|
f32 fVar2;
|
|
|
|
fVar2 = i_Meter->field_0x13d0.pane->mBounds.f.x - i_Meter->field_0x13d0.pane->mBounds.i.x;
|
|
dVar9 = ((i_Meter->field_0x1948.pane->mBounds.f.x - i_Meter->field_0x1948.pane->mBounds.i.x) / 2.0f - (fVar2 / 2.0f));
|
|
dVar8 = ((i_Meter->field_0x1948.pane->mBounds.f.y - i_Meter->field_0x1948.pane->mBounds.i.y) / 2.0f);
|
|
dVar7 = ((i_Meter->field_0x16a8.pane->mBounds.f.x - i_Meter->field_0x16a8.pane->mBounds.i.x) / 2.0f - (fVar2 / 2.0f));
|
|
dVar6 = ((i_Meter->field_0x16a8.pane->mBounds.f.y - i_Meter->field_0x16a8.pane->mBounds.i.y) / 2.0f);
|
|
i_Meter->field_0x12f0.mUserArea = i_Meter->field_0x12f0.mUserArea + -1;
|
|
if (i_Meter->field_0x12f0.mUserArea <= 0) {
|
|
dMeter_compassValueInit(i_Meter);
|
|
i_Meter->field_0x12f0.mUserArea = 0;
|
|
dVar5 = -(i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1948.mSizeOrig.x);
|
|
if (i_Meter->field_0x302a != 0) {
|
|
i_Meter->field_0x302a = 0;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW_END);
|
|
}
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(5, 5 - i_Meter->field_0x12f0.mUserArea, 0);
|
|
dVar5 = (dVar5 * -(i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1948.mSizeOrig.x));
|
|
if (i_Meter->field_0x302a == 0) {
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_COMPASS_MOVE);
|
|
}
|
|
}
|
|
fopMsgM_paneTrans(&i_Meter->field_0x12f0, dVar5, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x16a8, dVar5, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1948, dVar5, 0.0f);
|
|
i_Meter->field_0x16a8.pane->rotate(dVar7, dVar6, ROTATE_Z, 180.0f);
|
|
i_Meter->field_0x1948.pane->rotate(dVar9, dVar8, ROTATE_Z, 180.0f);
|
|
}
|
|
|
|
/* 801FDDA4-801FDEC4 .text dMeter_compassAnimeMove__FP15sub_meter_class */
|
|
void dMeter_compassAnimeMove(sub_meter_class* i_Meter) {
|
|
s16 sVar2;
|
|
|
|
if (dComIfGs_getTime() >= 90.0f && dComIfGs_getTime() < 270.0f) {
|
|
sVar2 = 0;
|
|
} else {
|
|
sVar2 = 1;
|
|
}
|
|
if ((!CPad_CHECK_TRIG_LEFT(0) || CPad_CHECK_TRIG_UP(0) || CPad_CHECK_TRIG_DOWN(0)) &&
|
|
(!dComIfGp_roomControl_getTimePass() || i_Meter->field_0x2f68) && (dComIfGp_roomControl_getTimePass() || !i_Meter->field_0x2f68))
|
|
{
|
|
if (dComIfGp_roomControl_getTimePass()) {
|
|
return;
|
|
}
|
|
if (i_Meter->field_0x3012 == sVar2) {
|
|
return;
|
|
}
|
|
}
|
|
i_Meter->field_0x3020 = 8;
|
|
i_Meter->field_0x1948.mUserArea = 0;
|
|
i_Meter->field_0x302a = 1;
|
|
mDoAud_seStart(JA_SE_MAP_CANCEL);
|
|
}
|
|
|
|
/* 801FDEC4-801FE0D0 .text dMeter_compassValueInit__FP15sub_meter_class */
|
|
void dMeter_compassValueInit(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
f32 x;
|
|
f32 dVar4;
|
|
f32 dVar5;
|
|
f32 dVar6;
|
|
f32 dVar7;
|
|
f32 dVar8;
|
|
|
|
if (dComIfGp_roomControl_getTimePass()) {
|
|
i_Meter->field_0x2f68 = 1.0f;
|
|
} else {
|
|
i_Meter->field_0x2f68 = 0.0f;
|
|
}
|
|
if (dComIfGs_getTime() >= 90.0f && dComIfGs_getTime() < 270.0f) {
|
|
i_Meter->field_0x3012 = 0;
|
|
} else {
|
|
i_Meter->field_0x3012 = 1;
|
|
}
|
|
i_Meter->field_0x12f0.mUserArea = 0;
|
|
i_Meter->field_0x302a = 0;
|
|
dVar8 = i_Meter->field_0x13d0.pane->mBounds.f.x - i_Meter->field_0x13d0.pane->mBounds.i.x;
|
|
dVar7 = i_Meter->field_0x1948.pane->mBounds.f.x - i_Meter->field_0x1948.pane->mBounds.i.x;
|
|
dVar6 = i_Meter->field_0x1948.pane->mBounds.f.y - i_Meter->field_0x1948.pane->mBounds.i.y;
|
|
dVar5 = i_Meter->field_0x16a8.pane->mBounds.f.x - i_Meter->field_0x16a8.pane->mBounds.i.x;
|
|
dVar4 = i_Meter->field_0x16a8.pane->mBounds.f.y - i_Meter->field_0x16a8.pane->mBounds.i.y;
|
|
x = -(i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1948.mSizeOrig.x);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x12f0, x, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x1948, x, 0.0f);
|
|
i_Meter->field_0x16a8.pane->rotate((dVar5 / 2.0f) - (dVar8 / 2.0f), dVar4 / 2.0f, ROTATE_Z, 180.0f);
|
|
i_Meter->field_0x1948.pane->rotate((dVar7 / 2.0f) - (dVar8 / 2.0f), dVar6 / 2.0f, ROTATE_Z, 180.0f);
|
|
i_Meter->field_0x1210.pane->hide();
|
|
i_Meter->field_0x12f0.pane->hide();
|
|
dMeter_clockHide(i_Meter);
|
|
i_Meter->field_0x3020 = 1;
|
|
}
|
|
|
|
/* 801FE0D0-801FE230 .text dMeter_compassAlpha__FP15sub_meter_class */
|
|
void dMeter_compassAlpha(sub_meter_class* i_Meter) {
|
|
f32 dVar3 = i_Meter->field_0x2f6c;
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1210, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x12f0, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1398, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x13d0, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1408, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1440, dVar3);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1478[i], dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1868[0], dVar3);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1520, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1558, dVar3);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1590[i], dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1718[0], dVar3);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1670, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x16a8, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x16e0, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x17f8, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1830, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1910, dVar3);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x1948, dVar3);
|
|
}
|
|
|
|
/* 801FE230-801FE2EC .text dMeter_compassInit__FP15sub_meter_class */
|
|
void dMeter_compassInit(sub_meter_class* i_Meter) {
|
|
((MyPicture*)i_Meter->field_0x1248.pane)->m134 = 1;
|
|
((MyPicture*)i_Meter->field_0x1248.pane)->m124 = -1.0f;
|
|
((MyPicture*)i_Meter->field_0x1248.pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x1248.pane)->m12C = 1.0f;
|
|
((MyPicture*)i_Meter->field_0x1248.pane)->m130 = 1.0f;
|
|
((MyPicture*)i_Meter->field_0x1280.pane)->m134 = 1;
|
|
((MyPicture*)i_Meter->field_0x1280.pane)->m124 = -1.0f;
|
|
((MyPicture*)i_Meter->field_0x1280.pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Meter->field_0x1280.pane)->m12C = 1.0f;
|
|
((MyPicture*)i_Meter->field_0x1280.pane)->m130 = 1.0f;
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0) {
|
|
i_Meter->field_0x3029 = 1;
|
|
} else {
|
|
i_Meter->field_0x3029 = 0;
|
|
}
|
|
i_Meter->field_0x1948.mUserArea = 0;
|
|
dMeter_compassValueInit(i_Meter);
|
|
dMeter_clockMultiInit(i_Meter);
|
|
}
|
|
|
|
/* 801FE2EC-801FE444 .text dMeter_compassMove__FP15sub_meter_class */
|
|
void dMeter_compassMove(sub_meter_class* i_Meter) {
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK4000_e) || ((i_Meter->mStatusFlags & dMtrStts_UNK40_e) && dComIfGp_event_checkHind(0x100)) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK200000_e))
|
|
{
|
|
dMeter_compassValueInit(i_Meter);
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK100_e) || (i_Meter->mStatusFlags & dMtrStts_UNK80_e) || (i_Meter->mStatusFlags & dMtrStts_UNK100000_e) ||
|
|
(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK8_e) || (i_Meter->mStatusFlags & dMtrStts_UNK10_e) ||
|
|
((i_Meter->mStatusFlags & dMtrStts_UNK800000_e) || (i_Meter->mStatusFlags & dMtrStts_UNK20_e)) || dComIfGp_getMiniGameType() == 1 ||
|
|
dComIfGp_getMiniGameType() == 8)
|
|
{
|
|
dMeter_compassValueInit(i_Meter);
|
|
} else if ((i_Meter->mStatusFlags & dMtrStts_UNK400_e) && (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) != dSv_save_c::STAGE_TOTG)) {
|
|
dMeter_compassGetOnProc(i_Meter);
|
|
dMeter_compassAlpha(i_Meter);
|
|
if (i_Meter->field_0x3027 == 0) {
|
|
dMap_c::setMapDispMode(1);
|
|
} else {
|
|
dMap_c::setMapDispMode(0);
|
|
}
|
|
} else {
|
|
dMeter_compassGetOffProc(i_Meter);
|
|
dMeter_compassAlpha(i_Meter);
|
|
}
|
|
dMeter_clockMultiMove(i_Meter);
|
|
}
|
|
|
|
/* 801FE444-801FE8DC .text dMeter_clockShow__FP15sub_meter_class */
|
|
void dMeter_clockShow(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_roomControl_getTimePass()) {
|
|
i_Meter->field_0x2f68 = 1.0f;
|
|
} else {
|
|
i_Meter->field_0x2f68 = 0.0f;
|
|
}
|
|
if (dComIfGs_getTime() >= 90.0f && dComIfGs_getTime() < 270.0f) {
|
|
i_Meter->field_0x3012 = 0;
|
|
} else {
|
|
i_Meter->field_0x3012 = 1;
|
|
}
|
|
dMeter_clockInit(i_Meter);
|
|
if (dComIfGp_roomControl_getTimePass()) {
|
|
i_Meter->field_0x1398.pane->show();
|
|
i_Meter->field_0x13d0.pane->show();
|
|
i_Meter->field_0x1408.pane->show();
|
|
i_Meter->field_0x1440.pane->show();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1478[i].pane->show();
|
|
}
|
|
i_Meter->field_0x1520.pane->show();
|
|
i_Meter->field_0x1558.pane->show();
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1590[i].pane->show();
|
|
}
|
|
i_Meter->field_0x1670.pane->show();
|
|
i_Meter->field_0x16a8.pane->show();
|
|
i_Meter->field_0x16e0.pane->hide();
|
|
i_Meter->field_0x17f8.pane->hide();
|
|
i_Meter->field_0x1830.pane->hide();
|
|
i_Meter->field_0x1910.pane->hide();
|
|
i_Meter->field_0x1948.pane->hide();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1868[i].pane->hide();
|
|
}
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1718[i].pane->hide();
|
|
}
|
|
} else {
|
|
i_Meter->field_0x1398.pane->hide();
|
|
i_Meter->field_0x13d0.pane->hide();
|
|
i_Meter->field_0x1408.pane->hide();
|
|
i_Meter->field_0x1440.pane->hide();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1478[i].pane->hide();
|
|
}
|
|
i_Meter->field_0x1520.pane->hide();
|
|
i_Meter->field_0x1558.pane->hide();
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1590[i].pane->hide();
|
|
}
|
|
i_Meter->field_0x1670.pane->hide();
|
|
i_Meter->field_0x16a8.pane->hide();
|
|
if (dComIfGs_getTime() >= 90.0f && dComIfGs_getTime() < 270.0f) {
|
|
i_Meter->field_0x16e0.pane->show();
|
|
i_Meter->field_0x17f8.pane->hide();
|
|
i_Meter->field_0x1830.pane->show();
|
|
i_Meter->field_0x1910.pane->show();
|
|
i_Meter->field_0x1948.pane->show();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1868[i].pane->hide();
|
|
}
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1718[i].pane->hide();
|
|
}
|
|
((J2DPicture*)i_Meter->field_0x1948.pane)->setCornerColor(0xFFFF00FF, 0xFFFF00FF, 0xFFFF00FF, 0x0000FFFF);
|
|
} else {
|
|
i_Meter->field_0x16e0.pane->show();
|
|
i_Meter->field_0x17f8.pane->show();
|
|
i_Meter->field_0x1830.pane->hide();
|
|
i_Meter->field_0x1910.pane->hide();
|
|
i_Meter->field_0x1948.pane->show();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1868[i].pane->hide();
|
|
}
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1718[i].pane->show();
|
|
}
|
|
((J2DPicture*)i_Meter->field_0x1948.pane)->setCornerColor(0x0000FFFF, 0x000000FF, 0x000000FF, 0x000000FF);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801FE8DC-801FE9A4 .text dMeter_clockHide__FP15sub_meter_class */
|
|
void dMeter_clockHide(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x1398.pane->hide();
|
|
i_Meter->field_0x13d0.pane->hide();
|
|
i_Meter->field_0x1408.pane->hide();
|
|
i_Meter->field_0x1440.pane->hide();
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1478[i].pane->hide();
|
|
i_Meter->field_0x1868[i].pane->hide();
|
|
}
|
|
i_Meter->field_0x1520.pane->hide();
|
|
i_Meter->field_0x1558.pane->hide();
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Meter->field_0x1590[i].pane->hide();
|
|
i_Meter->field_0x1718[i].pane->hide();
|
|
}
|
|
i_Meter->field_0x1670.pane->hide();
|
|
i_Meter->field_0x16a8.pane->hide();
|
|
i_Meter->field_0x16e0.pane->hide();
|
|
i_Meter->field_0x17f8.pane->hide();
|
|
i_Meter->field_0x1830.pane->hide();
|
|
i_Meter->field_0x1910.pane->hide();
|
|
i_Meter->field_0x1948.pane->hide();
|
|
}
|
|
|
|
/* 801FE9A4-801FEA50 .text dMeter_clockInit__FP15sub_meter_class */
|
|
void dMeter_clockInit(sub_meter_class* i_Meter) {
|
|
static s16 initPosX[] = {0x0071, 0x0062, 0x009A};
|
|
static s16 initPosY[] = {0x01B3, 0x018C, 0x0194};
|
|
f32 fVar1;
|
|
f32 fVar2;
|
|
|
|
fVar1 = i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1830.mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x1948.mPosTopLeftOrig.y + i_Meter->field_0x1830.mPosTopLeftOrig.y;
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1718[i].mUserArea = 1;
|
|
i_Meter->field_0x1478[i].mUserArea = 1;
|
|
i_Meter->field_0x1868[i].mPosCenter.x = fVar1 - initPosX[i];
|
|
i_Meter->field_0x1868[i].mPosCenter.y = fVar2 - initPosY[i];
|
|
}
|
|
i_Meter->field_0x1718[3].mUserArea = 1;
|
|
i_Meter->field_0x1910.mUserArea = 0;
|
|
}
|
|
|
|
/* 801FEA50-801FEC2C .text dMeter_clockMove__FP15sub_meter_class */
|
|
void dMeter_clockMove(sub_meter_class* i_Meter) {
|
|
JUtility::TColor color1;
|
|
JUtility::TColor color2;
|
|
|
|
if (i_Meter->field_0x1910.mUserArea <= 0x3c) {
|
|
fopMsgM_valueIncrease(0x3c, i_Meter->field_0x1910.mUserArea, 0);
|
|
} else {
|
|
fopMsgM_valueIncrease(0x3c, 0x78 - i_Meter->field_0x1910.mUserArea, 0);
|
|
}
|
|
if (i_Meter->field_0x1910.mUserArea < 0x78) {
|
|
i_Meter->field_0x1910.mUserArea++;
|
|
} else {
|
|
i_Meter->field_0x1910.mUserArea = 0;
|
|
}
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->field_0x1868[i].mPosCenter.x = g_meterHIO.field_0x6c[i];
|
|
i_Meter->field_0x1868[i].mPosCenter.y = g_meterHIO.field_0x72[i];
|
|
}
|
|
if (dComIfGp_roomControl_getTimePass()) {
|
|
if (i_Meter->field_0x1478[0].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fe4);
|
|
}
|
|
if (i_Meter->field_0x1478[1].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fe8);
|
|
}
|
|
if (i_Meter->field_0x1478[2].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fec);
|
|
}
|
|
dMeter_clockStarLight(&i_Meter->field_0x1478[0], &i_Meter->field_0x2fe4);
|
|
dMeter_clockStarLight(&i_Meter->field_0x1478[1], &i_Meter->field_0x2fe8);
|
|
dMeter_clockStarLight(&i_Meter->field_0x1478[2], &i_Meter->field_0x2fec);
|
|
} else {
|
|
if (i_Meter->field_0x1718[0].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fe4);
|
|
}
|
|
if (i_Meter->field_0x1718[1].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fe8);
|
|
}
|
|
if (i_Meter->field_0x1718[2].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2fec);
|
|
}
|
|
if (i_Meter->field_0x1718[3].mUserArea == 1) {
|
|
dMeter_starLightFrame(&i_Meter->field_0x2ff0);
|
|
}
|
|
dMeter_clockStarLight(&i_Meter->field_0x1718[0], &i_Meter->field_0x2fe4);
|
|
dMeter_clockStarLight(&i_Meter->field_0x1718[1], &i_Meter->field_0x2fe8);
|
|
dMeter_clockStarLight(&i_Meter->field_0x1718[2], &i_Meter->field_0x2fec);
|
|
dMeter_clockStarLight(&i_Meter->field_0x1718[3], &i_Meter->field_0x2ff0);
|
|
}
|
|
}
|
|
|
|
/* 801FEC2C-801FED10 .text dMeter_clockStarLight__FP18fopMsgM_pane_classPs */
|
|
void dMeter_clockStarLight(fopMsgM_pane_class* param_1, s16* param_2) {
|
|
u8 uVar1;
|
|
f32 dVar4;
|
|
JUtility::TColor black;
|
|
|
|
if (param_1->mUserArea < param_2[0]) {
|
|
dVar4 = fopMsgM_valueIncrease(param_2[0], param_1->mUserArea, 0);
|
|
} else {
|
|
dVar4 = fopMsgM_valueIncrease(param_2[1] - param_2[0], param_2[1] - param_1->mUserArea, 0);
|
|
}
|
|
uVar1 = dVar4 * 255.0f;
|
|
black.b = uVar1;
|
|
black.g = uVar1;
|
|
black.r = uVar1;
|
|
black.a = 0x00;
|
|
((J2DPicture*)param_1->pane)->setBlack(black);
|
|
if (param_1->mUserArea < param_2[1]) {
|
|
param_1->mUserArea++;
|
|
} else {
|
|
param_1->mUserArea = 1;
|
|
}
|
|
}
|
|
|
|
/* 801FED10-801FEE00 .text dMeter_starLightFrame__FPs */
|
|
void dMeter_starLightFrame(s16* param_1) {
|
|
param_1[0] = g_meterHIO.field_0x90 + cM_rndFX(g_meterHIO.field_0x9a);
|
|
param_1[1] = (param_1[0] + g_meterHIO.field_0x88) + cM_rndFX(g_meterHIO.field_0x92);
|
|
}
|
|
|
|
/* 801FEE00-801FEF40 .text dMeter_clockMultiInit__FP15sub_meter_class */
|
|
void dMeter_clockMultiInit(sub_meter_class* i_Meter) {
|
|
static f32 scaleX[] = {0.813f, 0.75f, 0.5f};
|
|
static f32 scaleY[] = {0.667f, 0.583f, 0.604f};
|
|
|
|
JKRArchive* pArchive = dComIfGp_getSwimResArchive();
|
|
ResTIMG* texture1 = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "swimtime_meter_mask.bti", pArchive);
|
|
JKRArchive* pArchive2 = dComIfGp_getMenuArchive();
|
|
ResTIMG* texture2 = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "screw_01.bti", pArchive2);
|
|
JUT_ASSERT(10626, texture1 != NULL && texture2 != NULL);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
clock[i].init(texture1, texture2, 1.0f / scaleX[i], 1.0f / scaleY[i]);
|
|
}
|
|
}
|
|
|
|
/* 801FEF40-801FF184 .text dMeter_clockMultiMove__FP15sub_meter_class */
|
|
void dMeter_clockMultiMove(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
static f32 scaleX[] = {0.813f, 0.75f, 0.5f};
|
|
static f32 scaleY[] = {0.667f, 0.583f, 0.604f};
|
|
s16 sVar5;
|
|
s16 sVar4;
|
|
s16 fVar2;
|
|
s16 fVar1;
|
|
|
|
for (s32 i = 0; i < 3; i++) {
|
|
sVar4 = i_Meter->field_0x1948.mPosTopLeftOrig.x + i_Meter->field_0x1830.mPosTopLeftOrig.x;
|
|
sVar5 = i_Meter->field_0x1948.mPosTopLeftOrig.y + i_Meter->field_0x1830.mPosTopLeftOrig.y;
|
|
fVar1 = i_Meter->field_0x1868[i].mPosCenter.x;
|
|
fVar2 = i_Meter->field_0x1868[i].mPosCenter.y;
|
|
clock[i].setPos(sVar4, sVar5, sVar4 + i_Meter->field_0x1830.mSizeOrig.x, sVar5 + i_Meter->field_0x1830.mSizeOrig.y);
|
|
GXColor color1 = {0xFF, 0XFF, 0XFF, 0XFF};
|
|
clock[i].mBlack.r = color1.r;
|
|
clock[i].mBlack.g = color1.g;
|
|
clock[i].mBlack.b = color1.b;
|
|
clock[i].mBlack.a = color1.a;
|
|
GXColor color2 = {0x00, 0x00, 0XFF, 0x00};
|
|
clock[i].mWhite.r = color2.r;
|
|
clock[i].mWhite.g = color2.g;
|
|
clock[i].mWhite.b = color2.b;
|
|
clock[i].mWhite.a = color2.a;
|
|
clock[i].setScroll(0, 0, 0);
|
|
clock[i].setScroll(1, fVar1, fVar2);
|
|
clock[i].setScale((100.0f * (1.0f / scaleX[i]) / g_meterHIO.field_0x78[i]), (100.0f * (1.0f / scaleY[i])) / g_meterHIO.field_0x78[i]);
|
|
}
|
|
}
|
|
|
|
/* 801FF184-801FF1F8 .text dMeter_mapInit__FP15sub_meter_class */
|
|
void dMeter_mapInit(sub_meter_class* i_Meter) {
|
|
i_Meter->field_0x3027 = 0xFF;
|
|
i_Meter->field_0x0100[0].mUserArea = dComIfGs_isDungeonItemCompass();
|
|
dMeter_mMapCtrlDisp.field_0x0 = 0;
|
|
dMeter_mMapCtrlDisp.field_0x4 = g_meter_mapHIO.field_0xc - g_meter_mapHIO.field_0x8;
|
|
dMeter_mMapCtrlDisp.initMapCtrlDisp();
|
|
}
|
|
|
|
/* 801FF1F8-801FF684 .text dMeter_mapMove__FP15sub_meter_class */
|
|
void dMeter_mapMove(sub_meter_class* i_Meter) {
|
|
static s16 mapTimer = 0;
|
|
static u8 stageFlag = false;
|
|
static s32 stayNo = dComIfGp_roomControl_getStayNo();
|
|
if (fopOvlpM_IsDoingReq() == 0) {
|
|
if (i_Meter->field_0x3027 == 0xFF) {
|
|
stageFlag = 1;
|
|
} else {
|
|
if (stayNo != dComIfGp_roomControl_getStayNo()) {
|
|
stageFlag = 2;
|
|
stayNo = dComIfGp_roomControl_getStayNo();
|
|
}
|
|
}
|
|
}
|
|
if (!(i_Meter->mStatusFlags & dMtrStts_UNK4000_e) && (!(i_Meter->mStatusFlags & dMtrStts_UNK40_e) || !dComIfGp_event_checkHind(0x100)) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK100_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK80_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK8_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK10_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e) && dMap_isEnableDispMap() &&
|
|
((strcmp(dComIfGp_getNextStageName(), "MajyuE") != 0) || dComIfGs_isEventBit(dSv_event_flag_c::UNK_0801)))
|
|
{
|
|
if ((i_Meter->mStatusFlags & dMtrStts_UNK400_e) && (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) != dSv_save_c::STAGE_TOTG)) {
|
|
if (((s32)dMeter_mMapCtrlDisp.field_0x0 != 0) && dMap_isEnableDispMap()) {
|
|
dMeter_mMapCtrlDisp.field_0x0 = 0;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 7;
|
|
}
|
|
} else {
|
|
if (!CPad_CHECK_TRIG_UP(0) && !CPad_CHECK_TRIG_DOWN(0) && dComIfGp_getMiniGameType() != 1 &&
|
|
(CPad_CHECK_TRIG_LEFT(0) != 0 || CPad_CHECK_TRIG_RIGHT(0)))
|
|
{
|
|
if (CPad_CHECK_TRIG_LEFT(0) != 0) {
|
|
if (dMap_c::getMapAlpha() != 0 && ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0)) {
|
|
if (dMap_isEnableDispMap()) {
|
|
dMeter_mMapCtrlDisp.field_0x0 = 0;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 0;
|
|
}
|
|
i_Meter->field_0x3029 = 0;
|
|
mDoAud_seStart(JA_SE_MAP_CANCEL);
|
|
}
|
|
} else if (CPad_CHECK_TRIG_RIGHT(0) != 0 && dMap_c::getMapAlpha() != 0) {
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 == 0) {
|
|
if (dMap_isEnableDispMap()) {
|
|
dMeter_mMapCtrlDisp.field_0x0 = 1;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 0;
|
|
}
|
|
i_Meter->field_0x3029 = 1;
|
|
mDoAud_seStart(JA_SE_MAP_SHOW);
|
|
} else if (i_Meter->field_0x3027 != 0) {
|
|
i_Meter->field_0x3027 = 0;
|
|
mDoAud_seStart(JA_SE_MAP_ZOOM);
|
|
} else {
|
|
i_Meter->field_0x3027 = 1;
|
|
mDoAud_seStart(JA_SE_MAP_ZOOM);
|
|
}
|
|
}
|
|
} else if (i_Meter->field_0x3029 != 0 && i_Meter->field_0x3020 == 1 && (s32)dMeter_mMapCtrlDisp.field_0x0 == 0 && dMap_isEnableDispMap())
|
|
{
|
|
dMeter_mMapCtrlDisp.field_0x0 = 1;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 7;
|
|
}
|
|
if (stageFlag == 1) {
|
|
stageFlag = 0;
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 == 0) {
|
|
if (dMap_isEnableDispMap()) {
|
|
dMeter_mMapCtrlDisp.field_0x0 = 1;
|
|
dMeter_mMapCtrlDisp.field_0x1 = 0;
|
|
}
|
|
i_Meter->field_0x3029 = 1;
|
|
i_Meter->field_0x3027 = 0;
|
|
}
|
|
} else if (stageFlag == 2) {
|
|
stageFlag = 0;
|
|
i_Meter->field_0x3027 = 0;
|
|
}
|
|
if (i_Meter->field_0x3027 == 0) {
|
|
dMap_c::setMapDispMode(1);
|
|
} else {
|
|
dMap_c::setMapDispMode(0);
|
|
}
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0 && mapTimer != 6) {
|
|
mapTimer = 6;
|
|
}
|
|
}
|
|
}
|
|
dMeter_mMapCtrlDisp.moveMapCtrlDisp();
|
|
dMeter_recollect_boss_data();
|
|
}
|
|
|
|
/* 801FF684-801FF76C .text dMeter_arwInit__FP15sub_meter_class */
|
|
void dMeter_arwInit(sub_meter_class* i_Meter) {
|
|
u8 bVar2;
|
|
u8 uVar1;
|
|
|
|
bVar2 = daArrow_c::getKeepType();
|
|
uVar1 = bVar2;
|
|
if (bVar2 > 3) {
|
|
uVar1 = 0;
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(i_Meter->arrowTex[i], 0xc00, 'TIMG', arrowTexImage[uVar1], archive);
|
|
DCStoreRangeNoSync(i_Meter->arrowTex[i], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2940[i].pane)->changeTexture(i_Meter->arrowTex[i], 0);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2940[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x29b0[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2940[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x29b0[i]);
|
|
i_Meter->field_0x2f24[i] = 0;
|
|
}
|
|
}
|
|
|
|
/* 801FF76C-801FFEB0 .text dMeter_arwMove__FP15sub_meter_class */
|
|
void dMeter_arwMove(sub_meter_class* i_Meter) {
|
|
static const u16 particleName[] = {
|
|
dPa_name::ID_HM_J2_ARWG_FLAME00,
|
|
dPa_name::ID_HM_J2_ARWI_COLD00,
|
|
dPa_name::ID_HM_J2_ARWF_LIGHT00,
|
|
};
|
|
|
|
f32 dVar15;
|
|
f32 dVar16;
|
|
cXyz local_6c;
|
|
cXyz local_78;
|
|
JKRArchive* archive;
|
|
|
|
static u8 arrowType = daArrow_c::getKeepType();
|
|
static u8 oldType = arrowType;
|
|
dVar16 = (i_Meter->field_0x29b0[0].mPosCenterOrig.x - i_Meter->field_0x29b0[1].mPosCenterOrig.x);
|
|
if (
|
|
dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK4000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK40_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK200000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK80_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK20000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK8_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK10_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK20_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK100_e) &&
|
|
dComIfGp_getMiniGameType() != 8
|
|
) {
|
|
if (arrowType != daArrow_c::getKeepType()) {
|
|
archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(i_Meter->arrowTex[0], 0xc00, 'TIMG', arrowTexImage[arrowType], archive);
|
|
DCStoreRangeNoSync(i_Meter->arrowTex[0], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2940[0].pane)->changeTexture(i_Meter->arrowTex[0], 0);
|
|
oldType = arrowType;
|
|
arrowType = daArrow_c::getKeepType();
|
|
archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(i_Meter->arrowTex[1], 0xc00, 'TIMG', arrowTexImage[arrowType], archive);
|
|
DCStoreRangeNoSync(i_Meter->arrowTex[1], 0xc00);
|
|
((J2DPicture*)i_Meter->field_0x2940[1].pane)->changeTexture(i_Meter->arrowTex[1], 0);
|
|
i_Meter->field_0x29b0[0].mUserArea = 0;
|
|
if (i_Meter->field_0x29b0[1].mUserArea < 2) {
|
|
i_Meter->field_0x29b0[1].mUserArea++;
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Meter->field_0x2f24[i] != NULL) {
|
|
i_Meter->field_0x2f24[i]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f24[i]->stopDrawParticle();
|
|
i_Meter->field_0x2f24[i]->quitImmortalEmitter();
|
|
i_Meter->field_0x2f24[i] = 0;
|
|
}
|
|
}
|
|
}
|
|
if (oldType != 0) {
|
|
if (i_Meter->field_0x2f24[0] == NULL) {
|
|
local_6c.set(i_Meter->field_0x29b0[0].mPosCenter.x - 320.0f, i_Meter->field_0x29b0[0].mPosCenter.y - 240.0f, 0.0f);
|
|
i_Meter->field_0x2f24[0] = dComIfGp_particle_set2Dfore(particleName[oldType * 1 - 1], &local_6c);
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x2f24[0] != NULL) {
|
|
i_Meter->field_0x2f24[0]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f24[0]->stopDrawParticle();
|
|
i_Meter->field_0x2f24[0]->quitImmortalEmitter();
|
|
i_Meter->field_0x2f24[0] = NULL;
|
|
}
|
|
}
|
|
if (arrowType != 0) {
|
|
if (i_Meter->field_0x2f24[1] == NULL) {
|
|
local_78.set(i_Meter->field_0x29b0[0].mPosCenter.x - 320.0f, i_Meter->field_0x29b0[1].mPosCenter.y - 240.0f, 0.0f);
|
|
i_Meter->field_0x2f24[1] = dComIfGp_particle_set2Dfore(particleName[arrowType * 1 - 1], &local_78);
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x2f24[1] != NULL) {
|
|
i_Meter->field_0x2f24[1]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f24[1]->stopDrawParticle();
|
|
i_Meter->field_0x2f24[1]->quitImmortalEmitter();
|
|
i_Meter->field_0x2f24[1] = NULL;
|
|
}
|
|
}
|
|
if (i_Meter->field_0x29b0[1].mUserArea == 0) {
|
|
i_Meter->field_0x29b0[1].mUserArea = 1;
|
|
}
|
|
if (i_Meter->field_0x29b0[0].mUserArea < 10) {
|
|
i_Meter->field_0x29b0[0].mUserArea++;
|
|
if (i_Meter->field_0x29b0[0].mUserArea == 10) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2940[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x29b0[0]);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2940[1]);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x29b0[1]);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2940[i], dVar16, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x29b0[i], dVar16, 0.0f);
|
|
}
|
|
} else {
|
|
dVar15 = fopMsgM_valueIncrease(10, i_Meter->field_0x29b0[0].mUserArea, 0);
|
|
dVar16 = (f32)(dVar16 * dVar15);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2940[i], dVar16, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x29b0[i], dVar16, 0.0f);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2940[1], dVar15);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x29b0[1], dVar15);
|
|
if (i_Meter->field_0x29b0[1].mUserArea == 2) {
|
|
f32 dVar16_2 = fopMsgM_valueIncrease(10, 10 - i_Meter->field_0x29b0[0].mUserArea, 0);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2940[0], dVar16_2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x29b0[0], dVar16_2);
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2940[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x29b0[0]);
|
|
}
|
|
}
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2940[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x29b0[i]);
|
|
}
|
|
} else {
|
|
if (i_Meter->field_0x29b0[1].mUserArea != 0) {
|
|
i_Meter->field_0x29b0[1].mUserArea = 0;
|
|
}
|
|
if (i_Meter->field_0x29b0[0].mUserArea > 0) {
|
|
i_Meter->field_0x29b0[0].mUserArea--;
|
|
if (i_Meter->field_0x29b0[0].mUserArea == 0) {
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2940[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x29b0[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2940[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x29b0[i]);
|
|
if (i_Meter->field_0x2f24[i] != NULL) {
|
|
i_Meter->field_0x2f24[i]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f24[i]->stopDrawParticle();
|
|
i_Meter->field_0x2f24[i]->quitImmortalEmitter();
|
|
i_Meter->field_0x2f24[i] = NULL;
|
|
}
|
|
}
|
|
} else {
|
|
dVar16 = fopMsgM_valueIncrease(10, i_Meter->field_0x29b0[0].mUserArea, 0);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
i_Meter->field_0x2940[i].pane->setAlpha(i_Meter->field_0x2940[i].mNowAlpha * dVar16);
|
|
i_Meter->field_0x29b0[i].pane->setAlpha(i_Meter->field_0x29b0[i].mNowAlpha * dVar16);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Meter->field_0x2f24[i] != NULL) {
|
|
i_Meter->field_0x2f24[i]->playDrawParticle();
|
|
f32 x = i_Meter->field_0x29b0[1].mPosCenter.x - 320.0f;
|
|
f32 y = i_Meter->field_0x29b0[1].mPosCenter.y - 240.0f;
|
|
i_Meter->field_0x2f24[i]->setGlobalTranslation(x, y, 0.0f);
|
|
i_Meter->field_0x2f24[i]->setGlobalAlpha(i_Meter->field_0x2940[i].mNowAlpha);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801FFEB0-801FFF30 .text dMeter_moveItemInit__FP15sub_meter_class */
|
|
void dMeter_moveItemInit(sub_meter_class* i_Meter) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
const char* pFilename = dItem_data::getTexture(0x27);
|
|
JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', pFilename, archive);
|
|
DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00);
|
|
moveItemPane = new J2DPicture(i_Meter->moveIconTex[0]);
|
|
}
|
|
|
|
/* 801FFF30-80200398 .text dMeter_moveItemMove__FP15sub_meter_class */
|
|
void dMeter_moveItemMove(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
int iVar3;
|
|
f32 dVar4;
|
|
f32 in_f31;
|
|
f32 in_f30;
|
|
const char* pFilename;
|
|
JKRArchive* archive;
|
|
|
|
u8 uVar1 = g_menuHIO.field_0xc8;
|
|
if (dMeter_itemTimer == 0) {
|
|
if (dMeter_itemNum >= dInvSlot_ReserveFirst_e) {
|
|
archive = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGs_getItemReserve(dMeter_itemNum - dInvSlot_ReserveFirst_e));
|
|
JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', pFilename, archive);
|
|
DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00);
|
|
moveItemPane->changeTexture(i_Meter->moveIconTex[0], 0);
|
|
} else if (dMeter_itemNum >= dInvSlot_BaitFirst_e) {
|
|
archive = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGs_getItemBait(dMeter_itemNum - dInvSlot_BaitFirst_e));
|
|
JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', pFilename, archive);
|
|
DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00);
|
|
moveItemPane->changeTexture(i_Meter->moveIconTex[0], 0);
|
|
} else if (dMeter_itemNum >= dInvSlot_BeastFirst_e) {
|
|
archive = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(dComIfGs_getItemBeast(dMeter_itemNum - dInvSlot_BeastFirst_e));
|
|
JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', pFilename, archive);
|
|
DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00);
|
|
moveItemPane->changeTexture(i_Meter->moveIconTex[0], 0);
|
|
} else {
|
|
u8 uVar2_2 = dComIfGs_getItem(dMeter_itemNum);
|
|
if (uVar2_2 == 0x35 || uVar2_2 == 0x36) {
|
|
uVar2_2 = 0x27;
|
|
}
|
|
archive = dComIfGp_getItemIconArchive();
|
|
pFilename = dItem_data::getTexture(uVar2_2);
|
|
JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', pFilename, archive);
|
|
DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00);
|
|
moveItemPane->changeTexture(i_Meter->moveIconTex[0], 0);
|
|
}
|
|
}
|
|
if (dMeter_btn_chk == 0) {
|
|
in_f31 = (i_Meter->field_0x2080[0].mPosCenter.x - item_parts.mPosCenterOrig.x);
|
|
in_f30 = (i_Meter->field_0x2080[0].mPosCenter.y - item_parts.mPosCenterOrig.y);
|
|
} else if (dMeter_btn_chk == 1) {
|
|
in_f31 = (i_Meter->field_0x2080[1].mPosCenter.x - item_parts.mPosCenterOrig.x);
|
|
in_f30 = (i_Meter->field_0x2080[1].mPosCenter.y - item_parts.mPosCenterOrig.y);
|
|
} else if (dMeter_btn_chk == 2) {
|
|
in_f31 = (i_Meter->field_0x2080[2].mPosCenter.x - item_parts.mPosCenterOrig.x);
|
|
in_f30 = (i_Meter->field_0x2080[2].mPosCenter.y - item_parts.mPosCenterOrig.y);
|
|
}
|
|
dMeter_itemTimer++;
|
|
iVar3 = (s16)uVar1;
|
|
if (dMeter_itemTimer <= (s16)iVar3) {
|
|
dVar4 = fopMsgM_valueIncrease(iVar3, (s16)dMeter_itemTimer, 2);
|
|
item_parts.mPosCenter.x = item_parts.mPosCenterOrig.x + (in_f31 * dVar4);
|
|
item_parts.mPosCenter.y = item_parts.mPosCenterOrig.y + (in_f30 * dVar4);
|
|
f32 temp_f3 = item_parts.mSizeOrig.x * g_menuHIO.field_0x8;
|
|
f32 temp_f3_2 = temp_f3 - i_Meter->field_0x2080[0].mSizeOrig.x;
|
|
f32 temp_f2 = item_parts.mSizeOrig.y * g_menuHIO.field_0x8;
|
|
f32 temp_f2_2 = temp_f2 - i_Meter->field_0x2080[0].mSizeOrig.y;
|
|
switch (g_menuHIO.field_0xc9) {
|
|
case 1:
|
|
item_parts.mSize.x = temp_f3;
|
|
item_parts.mSize.y = temp_f2;
|
|
break;
|
|
case 2:
|
|
item_parts.mSize.x = temp_f3 - (temp_f3_2 * dVar4);
|
|
item_parts.mSize.y = temp_f2 - (temp_f2_2 * dVar4);
|
|
break;
|
|
default:
|
|
item_parts.mSize.x = item_parts.mSizeOrig.x;
|
|
item_parts.mSize.y = item_parts.mSizeOrig.y;
|
|
break;
|
|
}
|
|
item_parts.mPosTopLeft.x = item_parts.mPosCenter.x - item_parts.mSize.x / 2.0f;
|
|
item_parts.mPosTopLeft.y = item_parts.mPosCenter.y - item_parts.mSize.y / 2.0f;
|
|
if (dMeter_itemTimer == iVar3 + -1) {
|
|
dMeter_itemMoveFlag = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80200398-8020042C .text dMeter_moveItemDraw__FP15sub_meter_class */
|
|
void dMeter_moveItemDraw(sub_meter_class* i_Meter) {
|
|
s16 uVar1 = g_menuHIO.field_0xc8;
|
|
if (dMeter_itemMoveFlagCheck() && dMeter_itemTimer != 0 && moveItemPane != NULL) {
|
|
moveItemPane->draw(item_parts.mPosTopLeft.x, item_parts.mPosTopLeft.y, item_parts.mSize.x, item_parts.mSize.y, false, false, false);
|
|
if (dMeter_itemTimer >= uVar1) {
|
|
dMeter_itemMoveFlag = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020042C-8020054C .text dMeter_swimTransY__FP15sub_meter_classf */
|
|
void dMeter_swimTransY(sub_meter_class* i_Meter, f32 param_2) {
|
|
for (s32 i = 0; i < 9; i++) {
|
|
i_Meter->field_0x2a90[i].mPosCenterOrig.y = param_2 + (i_Meter->field_0x2a90[i].mPosTopLeftOrig.y + i_Meter->field_0x2a90[i].mSizeOrig.y / 2.0f);
|
|
}
|
|
i_Meter->field_0x2c88.mPosCenterOrig.y = param_2 + (i_Meter->field_0x2c88.mPosTopLeftOrig.y + i_Meter->field_0x2c88.mSizeOrig.y / 2.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2c88, 0.0f, 0.0f);
|
|
i_Meter->field_0x2cc0.mPosCenterOrig.y = param_2 + (i_Meter->field_0x2cc0.mPosTopLeftOrig.y + i_Meter->field_0x2cc0.mSizeOrig.y / 2.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2cc0, 0.0f, 0.0f);
|
|
i_Meter->field_0x2d30.mPosCenterOrig.y = param_2 + (i_Meter->field_0x2d30.mPosTopLeftOrig.y + i_Meter->field_0x2d30.mSizeOrig.y / 2.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2d30, 0.0f, 0.0f);
|
|
i_Meter->field_0x2dd8.mPosCenterOrig.y = param_2 + (i_Meter->field_0x2dd8.mPosTopLeftOrig.y + i_Meter->field_0x2dd8.mSizeOrig.y / 2.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2dd8, 0.0f, 0.0f);
|
|
}
|
|
|
|
/* 8020054C-8020059C .text dMeter_swimPaneShow__FP15sub_meter_class */
|
|
void dMeter_swimPaneShow(sub_meter_class* i_Meter) {
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2cf8);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2da0);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2d30);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2c88);
|
|
fopMsgM_setInitAlpha(&i_Meter->field_0x2dd8);
|
|
}
|
|
|
|
/* 8020059C-80200630 .text dMeter_swimPaneHide__FP15sub_meter_class */
|
|
void dMeter_swimPaneHide(sub_meter_class* i_Meter) {
|
|
for (s32 i = 0; i < 9; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2a90[i]);
|
|
}
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2c88);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2cc0);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2cf8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2d30);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2da0);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2dd8);
|
|
tekari.mBlack.a = 0;
|
|
}
|
|
|
|
/* 80200630-802006AC .text dMeter_swimPaneTransY__FP15sub_meter_classf */
|
|
void dMeter_swimPaneTransY(sub_meter_class* i_Meter, f32 param_2) {
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2d30, 0.0f, param_2);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2c88, 0.0f, param_2);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2cf8, 0.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Meter->field_0x2da0, 0.0f, 0.0f);
|
|
}
|
|
|
|
/* 802006AC-8020070C .text dMeter_swimPaneAlpha__FP15sub_meter_classf */
|
|
void dMeter_swimPaneAlpha(sub_meter_class* i_Meter, f32 param_2) {
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2cf8, param_2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2da0, param_2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2d30, param_2);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2c88, param_2);
|
|
}
|
|
|
|
/* 8020070C-802008F4 .text dMeter_swimInit__FP15sub_meter_class */
|
|
void dMeter_swimInit(sub_meter_class* i_Meter) {
|
|
ResTIMG* texture1;
|
|
ResTIMG* texture2;
|
|
|
|
dMeter_screenDataTimeSet(i_Meter);
|
|
dMeter_swimPaneHide(i_Meter);
|
|
if (!dStage_stagInfo_ChkKeyDisp(dComIfGp_getStageStagInfo())) {
|
|
dMeter_swimTransY(i_Meter, g_meterHIO.field_0x13a + 32.0f);
|
|
}
|
|
JUtility::TColor black = ((J2DPicture*)i_Meter->field_0x2c88.pane)->getBlack();
|
|
i_Meter->field_0x2ef0 = black;
|
|
JUtility::TColor white = ((J2DPicture*)i_Meter->field_0x2c88.pane)->getWhite();
|
|
i_Meter->field_0x2ef4 = white;
|
|
JUtility::TColor black2 = ((J2DPicture*)i_Meter->field_0x2da0.pane)->getBlack();
|
|
i_Meter->field_0x2f00 = black2;
|
|
i_Meter->field_0x2da0.mUserArea = 0;
|
|
i_Meter->field_0x2c88.mUserArea = 0;
|
|
i_Meter->field_0x2dd8.mUserArea = 0;
|
|
JKRArchive* pArchive = dComIfGp_getSwimResArchive();
|
|
texture1 = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "swimtime_meter_mask.bti", pArchive);
|
|
JKRArchive* pArchive2 = dComIfGp_getSwimResArchive();
|
|
texture2 = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "tekari.bti", pArchive2);
|
|
JUT_ASSERT(11498, texture1 != NULL && texture2 != NULL);
|
|
tekari.init(texture1, texture2, 1.0f, 1.0f);
|
|
}
|
|
|
|
/* 802008F4-80200D7C .text dMeter_swimMove__FP15sub_meter_class */
|
|
void dMeter_swimMove(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_getItemTimeCount() >= (dComIfGp_getItemTimeMax() / 2)) {
|
|
i_Meter->field_0x2f04.r = 200;
|
|
i_Meter->field_0x2f04.g = 200;
|
|
i_Meter->field_0x2f04.b = 0xff;
|
|
i_Meter->field_0x2ef8 = i_Meter->field_0x2ef0;
|
|
i_Meter->field_0x2efc = i_Meter->field_0x2ef4;
|
|
i_Meter->field_0x3000 = g_meterHIO.field_0x130;
|
|
}
|
|
if (i_Meter->field_0x2da0.mUserArea == 0) {
|
|
if (dComIfGp_getItemTimeCount() != 0) {
|
|
if (sScrTimer1 == NULL && sScrTimer2 == NULL) {
|
|
dMeter_swimInit(i_Meter);
|
|
}
|
|
i_Meter->field_0x2da0.mUserArea = 1;
|
|
i_Meter->field_0x3010 = 0;
|
|
i_Meter->field_0x2c88.mUserArea = 0;
|
|
i_Meter->field_0x2dd8.mUserArea = 0;
|
|
i_Meter->field_0x2cf8.mUserArea = 0;
|
|
i_Meter->field_0x2d30.mUserArea = (s16)dComIfGp_getItemTimeCount();
|
|
dMeter_xyRotateZ(&i_Meter->field_0x2cf8, 0, 0);
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setBlack(i_Meter->field_0x2ef0);
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setWhite(i_Meter->field_0x2ef4);
|
|
((J2DPicture*)i_Meter->field_0x2cf8.pane)->setBlack(i_Meter->field_0x2f00);
|
|
((J2DPicture*)i_Meter->field_0x2da0.pane)->setBlack(i_Meter->field_0x2f00);
|
|
i_Meter->field_0x2fc4 = 0;
|
|
i_Meter->field_0x2f04.r = 200;
|
|
i_Meter->field_0x2f04.g = 200;
|
|
i_Meter->field_0x2f04.b = 0xff;
|
|
i_Meter->field_0x2ef8 = i_Meter->field_0x2ef0;
|
|
i_Meter->field_0x2efc = i_Meter->field_0x2ef4;
|
|
i_Meter->field_0x3000 = g_meterHIO.field_0x130;
|
|
for (s32 i = 0; i < 9; i++) {
|
|
i_Meter->field_0x2a90[i].mUserArea = 0;
|
|
}
|
|
mDoAud_seStart(JA_SE_SWIM_TIMER_ON);
|
|
}
|
|
} else if (i_Meter->field_0x2da0.mUserArea == 1) {
|
|
if (dComIfGp_getItemTimeCount() != 0) {
|
|
if (!dMenu_flag() && !dComIfGp_event_runCheck() && dComIfGp_getItemSwimTimerStatus() != false) {
|
|
dMeter_swimOpenProc(i_Meter);
|
|
} else {
|
|
dMeter_swimPaneHide(i_Meter);
|
|
}
|
|
} else {
|
|
dMeter_swimPaneHide(i_Meter);
|
|
i_Meter->field_0x2da0.mUserArea = 0;
|
|
if (sScrTimer1 != NULL && sScrTimer2 != NULL) {
|
|
dComIfGp_getSwimResArchive()->removeResourceAll();
|
|
delete sScrTimer1;
|
|
delete sScrTimer2;
|
|
sScrTimer1 = NULL;
|
|
sScrTimer2 = NULL;
|
|
}
|
|
}
|
|
} else if (i_Meter->field_0x2da0.mUserArea == 2) {
|
|
if (dComIfGp_getItemTimeCount() != 0) {
|
|
if (!dMenu_flag() && !dComIfGp_event_runCheck() && dComIfGp_getItemSwimTimerStatus() != false) {
|
|
dMeter_swimMoveProc(i_Meter);
|
|
} else {
|
|
dMeter_swimPaneHide(i_Meter);
|
|
}
|
|
} else {
|
|
dMeter_swimPaneHide(i_Meter);
|
|
i_Meter->field_0x2da0.mUserArea = 0;
|
|
if (sScrTimer1 != NULL && sScrTimer2 != NULL) {
|
|
dComIfGp_getSwimResArchive()->removeResourceAll();
|
|
delete sScrTimer1;
|
|
delete sScrTimer2;
|
|
sScrTimer1 = NULL;
|
|
sScrTimer2 = NULL;
|
|
}
|
|
}
|
|
} else if (i_Meter->field_0x2da0.mUserArea == 3) {
|
|
if (!dMenu_flag()) {
|
|
dMeter_swimMoveProc(i_Meter);
|
|
} else {
|
|
dMeter_swimPaneHide(i_Meter);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80200D7C-80200E18 .text dMeter_swimDraw__FP15sub_meter_class */
|
|
void dMeter_swimDraw(sub_meter_class* i_Meter) {
|
|
if (sScrTimer2 != NULL) {
|
|
for (s32 i = 0; i < 9; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2a90[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2c88);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2cc0);
|
|
}
|
|
if (sScrTimer1 != NULL) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2cf8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2da0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2d30);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2dd8);
|
|
}
|
|
}
|
|
|
|
/* 80200E18-802011D0 .text dMeter_swimOpenProc__FP15sub_meter_class */
|
|
void dMeter_swimOpenProc(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
int r31 = ++i_Meter->field_0x2c88.mUserArea;
|
|
static f32 dist_buf = 0.0f;
|
|
f32 dVar3;
|
|
if (r31 == 1) {
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, 0.1f);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2dd8);
|
|
} else if (r31 < 5) {
|
|
dVar3 = fopMsgM_valueIncrease(4, r31 - 1, 0);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, (dVar3 * 0.9f) + 0.1f);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2dd8, dVar3);
|
|
} else if (r31 < 8) {
|
|
dVar3 = fopMsgM_valueIncrease(3, r31 - 5, 0);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, 1.0f - (dVar3 * 0.3f));
|
|
} else if (r31 < 10) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 8, 0);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, (dVar3 * 0.3f) + 0.7f);
|
|
} else if (r31 < 0xc) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 10, 0);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, 1.0f - (dVar3 * 0.100000024f));
|
|
} else if (r31 < 0xe) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 0xc, 0);
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, (dVar3 * 0.100000024f) + 0.9f);
|
|
} else if (r31 == 0xe) {
|
|
fopMsgM_paneScaleXY(&i_Meter->field_0x2dd8, 1.0f);
|
|
}
|
|
if (r31 == 1) {
|
|
dMeter_swimPaneTransY(i_Meter, -130.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2cf8, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2da0, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2d30, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2c88, 1.0f);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2cf8);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2da0);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2d30);
|
|
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2c88);
|
|
} else if (r31 <= 5) {
|
|
dVar3 = fopMsgM_valueIncrease(4, r31 - 1, 0);
|
|
dMeter_swimPaneTransY(i_Meter, -((1.0f - dVar3) * 130.0f));
|
|
dMeter_swimPaneAlpha(i_Meter, dVar3);
|
|
} else if (r31 <= 8) {
|
|
dVar3 = fopMsgM_valueIncrease(3, r31 - 5, 0);
|
|
dMeter_swimPaneTransY(i_Meter, (-25.0f - (1.0f - dVar3) * -25.0f));
|
|
dMeter_swimPaneShow(i_Meter);
|
|
} else if (r31 <= 0xa) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 8, 0);
|
|
dMeter_swimPaneTransY(i_Meter, -((1.0f - dVar3) * 25.0f));
|
|
dMeter_swimPaneShow(i_Meter);
|
|
} else if (r31 <= 0xc) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 10, 0);
|
|
dMeter_swimPaneTransY(i_Meter, (-6.0f - (1.0f - dVar3) * -6.0f));
|
|
dMeter_swimPaneShow(i_Meter);
|
|
} else if (r31 < 0xe) {
|
|
dVar3 = fopMsgM_valueIncrease(2, r31 - 0xc, 0);
|
|
dMeter_swimPaneTransY(i_Meter, -((1.0f - dVar3) * 6.0f));
|
|
dMeter_swimPaneShow(i_Meter);
|
|
} else if (r31 == 0xe) {
|
|
dMeter_swimPaneTransY(i_Meter, 0);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2cf8, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2da0, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2d30, 1.0f);
|
|
fopMsgM_paneScaleY(&i_Meter->field_0x2c88, 1.0f);
|
|
dMeter_swimPaneShow(i_Meter);
|
|
i_Meter->field_0x2c88.mUserArea = 0;
|
|
i_Meter->field_0x2da0.mUserArea = 2;
|
|
}
|
|
}
|
|
|
|
/* 802011D0-80201224 .text dMeter_swimMoveProc__FP15sub_meter_class */
|
|
void dMeter_swimMoveProc(sub_meter_class* i_Meter) {
|
|
dMeter_swimMainRotate(i_Meter);
|
|
dMeter_swimMainBlink(i_Meter);
|
|
dMeter_swimMainDown(i_Meter);
|
|
dMeter_swimTekariScroll(i_Meter);
|
|
dMeter_swimLightMove(i_Meter);
|
|
dMeter_swimPaneShow(i_Meter);
|
|
}
|
|
|
|
/* 80201224-802012CC .text dMeter_swimMainRotate__FP15sub_meter_class */
|
|
void dMeter_swimMainRotate(sub_meter_class* i_Meter) {
|
|
const s16 r5 = g_meterHIO.field_0x132;
|
|
s16 r4 = ++i_Meter->field_0x2c88.mUserArea;
|
|
f32 f1;
|
|
if (r4 < r5) {
|
|
f1 = ((r4 * 360.0f) / r5);
|
|
} else if (r4 == r5) {
|
|
i_Meter->field_0x2c88.mUserArea = 0;
|
|
f1 = 0.0f;
|
|
}
|
|
dMeter_xyRotateZ(&i_Meter->field_0x2cf8, f1, 0.0f);
|
|
}
|
|
|
|
/* 802012CC-80201C08 .text dMeter_swimMainBlink__FP15sub_meter_class */
|
|
void dMeter_swimMainBlink(sub_meter_class* i_Meter) {
|
|
f32 fVar2;
|
|
s32 uVar5;
|
|
int iVar6;
|
|
f32 dVar8;
|
|
|
|
JUtility::TColor local_100 = i_Meter->field_0x2f00;
|
|
JUtility::TColor local_104 = i_Meter->field_0x2ef0;
|
|
JUtility::TColor local_108 = i_Meter->field_0x2ef4;
|
|
int uVar7 = ++i_Meter->field_0x2dd8.mUserArea;
|
|
uVar5 = i_Meter->field_0x3000;
|
|
if ((int)uVar7 < (int)uVar5) {
|
|
fVar2 = ((f32)uVar7 / (f32)uVar5);
|
|
local_100.r = (75.0f + (fVar2 * (f32)(i_Meter->field_0x2f04.r - 0x4B)));
|
|
local_100.g = (75.0f + (fVar2 * (f32)(i_Meter->field_0x2f04.g - 0x4B)));
|
|
local_100.b = (255.0f + (fVar2 * (f32)(i_Meter->field_0x2f04.b - 0xFF)));
|
|
local_104.r = (i_Meter->field_0x2ef0.r + fVar2 * (i_Meter->field_0x2ef8.r - i_Meter->field_0x2ef0.r));
|
|
local_104.g = (i_Meter->field_0x2ef0.g + fVar2 * (i_Meter->field_0x2ef8.g - i_Meter->field_0x2ef0.g));
|
|
local_104.b = (i_Meter->field_0x2ef0.b + fVar2 * (i_Meter->field_0x2ef8.b - i_Meter->field_0x2ef0.b));
|
|
local_108.r = (i_Meter->field_0x2ef4.r + fVar2 * (i_Meter->field_0x2efc.r - i_Meter->field_0x2ef4.r));
|
|
local_108.g = (i_Meter->field_0x2ef4.g + fVar2 * (i_Meter->field_0x2efc.g - i_Meter->field_0x2ef4.g));
|
|
local_108.b = (i_Meter->field_0x2ef4.b + fVar2 * (i_Meter->field_0x2efc.b - i_Meter->field_0x2ef4.b));
|
|
} else {
|
|
if ((int)uVar7 < (s16)(uVar5 * 2)) {
|
|
fVar2 = (f32)(uVar7 - (f32)uVar5) / (f32)uVar5;
|
|
local_100.r = (i_Meter->field_0x2f04.r + fVar2 * (0x4b - i_Meter->field_0x2f04.r));
|
|
local_100.g = (i_Meter->field_0x2f04.g + fVar2 * (0x4b - i_Meter->field_0x2f04.g));
|
|
local_100.b = (i_Meter->field_0x2f04.b + fVar2 * (0xff - i_Meter->field_0x2f04.b));
|
|
local_104.r = (i_Meter->field_0x2ef8.r + fVar2 * (i_Meter->field_0x2ef0.r - i_Meter->field_0x2ef8.r));
|
|
local_104.g = (i_Meter->field_0x2ef8.g + fVar2 * (i_Meter->field_0x2ef0.g - i_Meter->field_0x2ef8.g));
|
|
local_104.b = (i_Meter->field_0x2ef8.b + fVar2 * (i_Meter->field_0x2ef0.b - i_Meter->field_0x2ef8.b));
|
|
local_108.r = (i_Meter->field_0x2efc.r + fVar2 * (i_Meter->field_0x2ef4.r - i_Meter->field_0x2efc.r));
|
|
local_108.g = (i_Meter->field_0x2efc.g + fVar2 * (i_Meter->field_0x2ef4.g - i_Meter->field_0x2efc.g));
|
|
local_108.b = (i_Meter->field_0x2efc.b + fVar2 * (i_Meter->field_0x2ef4.b - i_Meter->field_0x2efc.b));
|
|
} else if ((int)uVar7 >= (s16)(uVar5 * 2)) {
|
|
i_Meter->field_0x2dd8.mUserArea = 0;
|
|
local_100.r = 0x4b;
|
|
local_100.g = 0x4b;
|
|
local_100.b = 0xff;
|
|
local_104 = i_Meter->field_0x2ef0;
|
|
local_108 = i_Meter->field_0x2ef4;
|
|
if (dComIfGp_getItemTimeCount() <= 0) {
|
|
i_Meter->field_0x3000 = 0;
|
|
} else {
|
|
if (dComIfGp_getItemTimeCount() < dComIfGp_getItemTimeMax() / 2) {
|
|
dVar8 = fopMsgM_valueIncrease(dComIfGp_getItemTimeMax() / 2, dComIfGp_getItemTimeMax() / 2 - dComIfGp_getItemTimeCount(), 1);
|
|
i_Meter->field_0x3000 = (s16)(g_meterHIO.field_0x130 + (dVar8 * (g_meterHIO.field_0x134 - g_meterHIO.field_0x130)));
|
|
i_Meter->field_0x2f04.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2f04.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2f04.b = g_meterHIO.field_0x14c;
|
|
i_Meter->field_0x2ef8.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2ef8.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2ef8.b = g_meterHIO.field_0x14c;
|
|
i_Meter->field_0x2efc.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2efc.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2efc.b = g_meterHIO.field_0x14c;
|
|
if (i_Meter->field_0x2cf8.mUserArea <= 0) {
|
|
i_Meter->field_0x2cf8.mUserArea = 2;
|
|
if (!dComIfGp_event_runCheck()) {
|
|
mDoAud_seStart(JA_SE_SWIM_TIMER_BLINLK);
|
|
}
|
|
} else {
|
|
i_Meter->field_0x2cf8.mUserArea--;
|
|
}
|
|
} else if (dComIfGp_getItemTimeCount() < 0) {
|
|
i_Meter->field_0x3000 = g_meterHIO.field_0x134;
|
|
i_Meter->field_0x2f04.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2f04.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2f04.b = g_meterHIO.field_0x14c;
|
|
i_Meter->field_0x2ef8.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2ef8.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2ef8.b = g_meterHIO.field_0x14c;
|
|
i_Meter->field_0x2efc.r = g_meterHIO.field_0x14a;
|
|
i_Meter->field_0x2efc.g = g_meterHIO.field_0x14b;
|
|
i_Meter->field_0x2efc.b = g_meterHIO.field_0x14c;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (i_Meter->field_0x3000 != 0) {
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setBlack(local_104);
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setWhite(local_108);
|
|
((J2DPicture*)i_Meter->field_0x2cf8.pane)->setBlack(local_100);
|
|
((J2DPicture*)i_Meter->field_0x2da0.pane)->setBlack(local_100);
|
|
} else {
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setBlack(i_Meter->field_0x2ef8);
|
|
((J2DPicture*)i_Meter->field_0x2c88.pane)->setWhite(i_Meter->field_0x2efc);
|
|
((J2DPicture*)i_Meter->field_0x2cf8.pane)->setBlack(i_Meter->field_0x2f04);
|
|
((J2DPicture*)i_Meter->field_0x2da0.pane)->setBlack(i_Meter->field_0x2f04);
|
|
}
|
|
}
|
|
|
|
/* 80201C08-80201D2C .text dMeter_swimMainDown__FP15sub_meter_class */
|
|
void dMeter_swimMainDown(sub_meter_class* i_Meter) {
|
|
s16 sVar1;
|
|
|
|
sVar1 = (s16)dComIfGp_getItemTimeCount();
|
|
dMeter_paneBottomScaleY(&i_Meter->field_0x2d30, ((f32)sVar1 / (f32)i_Meter->field_0x2d30.mUserArea));
|
|
i_Meter->field_0x2da0.mPosTopLeft.y =
|
|
(i_Meter->field_0x2d30.mPosCenterOrig.y - i_Meter->field_0x2d30.mSizeOrig.y / 2.0f) - i_Meter->field_0x2d30.mPosTopLeft.y;
|
|
i_Meter->field_0x2da0.mPosCenter.y = i_Meter->field_0x2da0.mPosTopLeft.y + i_Meter->field_0x2da0.mSize.y / 2.0f;
|
|
fopMsgM_cposMove(&i_Meter->field_0x2da0);
|
|
i_Meter->field_0x2cf8.mPosCenter.y = i_Meter->field_0x2da0.mPosCenter.y;
|
|
fopMsgM_cposMove(&i_Meter->field_0x2cf8);
|
|
if (sVar1 > 0) {
|
|
if (!dComIfGp_event_runCheck() && dComIfGp_getItemSwimTimerStatus() != false) {
|
|
g_dComIfG_gameInfo.play.mAirMeter--;
|
|
}
|
|
if (dComIfGp_getItemTimeCount() == 0) {
|
|
i_Meter->field_0x2da0.mUserArea = 3;
|
|
dComIfGp_stopItemSwimTimer();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80201D2C-80201FC0 .text dMeter_swimTekariScroll__FP15sub_meter_class */
|
|
void dMeter_swimTekariScroll(sub_meter_class* i_Meter) {
|
|
s16 temp_r0 = g_meterHIO.field_0x14e + g_meterHIO.field_0x150;
|
|
s16 temp_r0_2 = temp_r0 + g_meterHIO.field_0x14e;
|
|
s16 temp_r0_3 = temp_r0_2 + g_meterHIO.field_0x152;
|
|
s16 temp_r0_4 = temp_r0_3 + g_meterHIO.field_0x14e;
|
|
s16 temp_r0_5 = temp_r0_4 + g_meterHIO.field_0x154;
|
|
f32 dVar12;
|
|
s16 var_r30;
|
|
s16 temp_r29 = (REG6_F(0) + (i_Meter->field_0x2c88.mPosCenterOrig.x - i_Meter->field_0x2c88.mSizeOrig.x / 2.0f));
|
|
s16 temp_r28 = (REG6_F(1) + (i_Meter->field_0x2c88.mPosCenterOrig.y - i_Meter->field_0x2c88.mSizeOrig.y / 2.0f));
|
|
s16 temp_r27 = (REG6_F(0) + (i_Meter->field_0x2c88.mPosCenterOrig.x + i_Meter->field_0x2c88.mSizeOrig.x / 2.0f));
|
|
s16 temp_r26 = (REG6_F(1) + (i_Meter->field_0x2c88.mPosCenterOrig.y + i_Meter->field_0x2c88.mSizeOrig.y / 2.0f));
|
|
s16 temp_r4 = i_Meter->field_0x2fc4;
|
|
if (temp_r4 < g_meterHIO.field_0x14e) {
|
|
dVar12 = fopMsgM_valueIncrease(g_meterHIO.field_0x14e, temp_r4, 0);
|
|
var_r30 = (0.5f + (28.0f - (64.0f * dVar12)));
|
|
} else if (temp_r4 < temp_r0) {
|
|
var_r30 = -0x24;
|
|
} else if (temp_r4 < temp_r0_2) {
|
|
dVar12 = fopMsgM_valueIncrease(g_meterHIO.field_0x14e, temp_r4 - temp_r0, 0);
|
|
var_r30 = (0.5f + (28.0f - (64.0f * dVar12)));
|
|
} else if (temp_r4 < temp_r0_3) {
|
|
var_r30 = -0x24;
|
|
} else if (temp_r4 < temp_r0_4) {
|
|
dVar12 = fopMsgM_valueIncrease(g_meterHIO.field_0x14e, temp_r4 - temp_r0_3, 0);
|
|
var_r30 = (0.5f + (28.0f - (64.0f * dVar12)));
|
|
} else if (temp_r4 < temp_r0_5) {
|
|
var_r30 = -0x24;
|
|
}
|
|
i_Meter->field_0x2fc4 += 1;
|
|
if (i_Meter->field_0x2fc4 >= temp_r0_5) {
|
|
i_Meter->field_0x2fc4 = 0;
|
|
}
|
|
tekari.setPos(temp_r29, temp_r28, temp_r27, temp_r26);
|
|
GXColor color1 = {0xFF, 0xFF, 0xFF, 0XFF};
|
|
tekari.mBlack.r = color1.r;
|
|
tekari.mBlack.g = color1.g;
|
|
tekari.mBlack.b = color1.b;
|
|
tekari.mBlack.a = color1.a;
|
|
GXColor color2 = {0xFF, 0xFF, 0xFF, 0X00};
|
|
tekari.mWhite.r = color2.r;
|
|
tekari.mWhite.g = color2.g;
|
|
tekari.mWhite.b = color2.b;
|
|
tekari.mWhite.a = color2.a;
|
|
tekari.setScroll(0, 0, 0);
|
|
tekari.mBlack.a = 0xFF;
|
|
tekari.setScroll(1, var_r30, var_r30);
|
|
}
|
|
|
|
/* 80201FC0-8020205C .text dMeter_swimLightMove__FP15sub_meter_class */
|
|
void dMeter_swimLightMove(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_getItemTimeCount() != 0) {
|
|
if (i_Meter->field_0x3010 == 0) {
|
|
dMeter_swimLightBirth(i_Meter);
|
|
} else {
|
|
i_Meter->field_0x3010--;
|
|
}
|
|
}
|
|
for (s16 i = 0; i < 9; i++) {
|
|
if (i_Meter->field_0x2a90[i].mUserArea != 0) {
|
|
dMeter_swimLightAnime(i_Meter, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020205C-802021B4 .text dMeter_swimLightBirth__FP15sub_meter_class */
|
|
void dMeter_swimLightBirth(sub_meter_class* i_Meter) {
|
|
s16 sVar1;
|
|
s16 iVar3;
|
|
|
|
sVar1 = 0;
|
|
for (s16 i = 0; i < 9; i++) {
|
|
if (i_Meter->field_0x2a90[i].mUserArea == 0) {
|
|
sVar1++;
|
|
}
|
|
}
|
|
iVar3 = cM_rndF(sVar1);
|
|
i_Meter->field_0x2f74[iVar3] = (cM_rndF(3.0f) + 5.0f);
|
|
i_Meter->field_0x2f98[iVar3] = cM_rndFX(5.0f);
|
|
i_Meter->field_0x2a90[iVar3].mUserArea = 1;
|
|
i_Meter->field_0x2a90[iVar3].mPosCenter.y = i_Meter->field_0x2d30.mPosTopLeft.y + g_meterHIO.field_0x13c;
|
|
fopMsgM_cposMove(&i_Meter->field_0x2a90[iVar3]);
|
|
i_Meter->field_0x3010 = cM_rndF((f32)g_meterHIO.field_0x138);
|
|
}
|
|
|
|
/* 802021B4-8020238C .text dMeter_swimLightAnime__FP15sub_meter_classs */
|
|
void dMeter_swimLightAnime(sub_meter_class* i_Meter, s16 param_2) {
|
|
/* Nonmatching */
|
|
s16 sVar1;
|
|
s16 sVar2;
|
|
s16 iVar3;
|
|
fopMsgM_pane_class* pane2;
|
|
int iVar4;
|
|
int iVar5;
|
|
f32 dVar6;
|
|
s16 iVar7;
|
|
|
|
sVar2 = g_meterHIO.field_0x136;
|
|
iVar5 = g_meterHIO.field_0x136;
|
|
iVar4 = (s16)(g_meterHIO.field_0x136 + g_meterHIO.field_0x138);
|
|
sVar1 = i_Meter->field_0x2a90[param_2].mUserArea;
|
|
dVar6 = sin((f32)(sVar1 * 0.5235988f));
|
|
i_Meter->field_0x2a90[param_2].mPosCenter.x = i_Meter->field_0x2a90[param_2].mPosCenterOrig.x + i_Meter->field_0x2f98[param_2] * dVar6;
|
|
i_Meter->field_0x2a90[param_2].mPosCenter.y = i_Meter->field_0x2a90[param_2].mPosCenter.y - i_Meter->field_0x2f74[param_2];
|
|
i_Meter->field_0x2a90[param_2].mSize.x = g_meterHIO.field_0x7e;
|
|
i_Meter->field_0x2a90[param_2].mSize.y = g_meterHIO.field_0x7e;
|
|
pane2 = &i_Meter->field_0x2a90[param_2];
|
|
fopMsgM_cposMove(pane2);
|
|
i_Meter->field_0x2f74[param_2] = i_Meter->field_0x2f74[param_2] * (cM_rndF(0.2f) + 0.8f);
|
|
i_Meter->field_0x2f98[param_2] = i_Meter->field_0x2f98[param_2] * (cM_rndF(0.1f) + 0.9f);
|
|
iVar3 = (int)sVar1;
|
|
iVar7 = (int)sVar2;
|
|
if (iVar3 == 1) {
|
|
fopMsgM_setNowAlphaZero(pane2);
|
|
} else if (iVar3 < iVar7) {
|
|
dVar6 = fopMsgM_valueIncrease(iVar5 + -1, iVar3 + -1, 1);
|
|
fopMsgM_setNowAlpha(pane2, dVar6);
|
|
} else if (iVar3 < iVar4) {
|
|
dVar6 = fopMsgM_valueIncrease(iVar4 - iVar5, iVar3 - iVar5, 0);
|
|
fopMsgM_setNowAlpha(pane2, (f32)(1.0f - dVar6));
|
|
} else if (iVar3 == iVar4) {
|
|
fopMsgM_setNowAlphaZero(pane2);
|
|
}
|
|
i_Meter->field_0x2a90[param_2].mUserArea++;
|
|
if (i_Meter->field_0x2a90[param_2].mUserArea > iVar4) {
|
|
i_Meter->field_0x2a90[param_2].mUserArea = 0;
|
|
}
|
|
}
|
|
|
|
/* 8020238C-8020240C .text dMeter_placeNameMove__Fv */
|
|
void dMeter_placeNameMove() {
|
|
if (!dMeter_place_name) {
|
|
if (dComIfGp_checkStageName() == 2) {
|
|
fopMsgM_create(fpcNm_PLACE_NAME_e);
|
|
dMeter_place_name = true;
|
|
}
|
|
} else {
|
|
if (dComIfGp_checkStageName() == 0) {
|
|
dMeter_place_name = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020240C-80202438 .text dMeter_arrowInit__FP15sub_meter_class */
|
|
void dMeter_arrowInit(sub_meter_class* i_Meter) {
|
|
for (int i = 0; i < 4; i++) {
|
|
i_Meter->field_0x2e10[i].mUserArea = 0;
|
|
}
|
|
i_Meter->field_0x3025 = 0;
|
|
}
|
|
|
|
/* 80202438-80202580 .text dMeter_arrowCheckStatus__FP15sub_meter_class */
|
|
void dMeter_arrowCheckStatus(sub_meter_class* i_Meter) {
|
|
if ((g_dComIfG_gameInfo.play.getDirection() & 1) != 0) {
|
|
if (i_Meter->field_0x2e10[0].mUserArea == 0) {
|
|
if (i_Meter->field_0x3025 == 0 || i_Meter->field_0x3025 == 0x14) {
|
|
i_Meter->field_0x2e10[0].mUserArea = 1;
|
|
}
|
|
}
|
|
} else {
|
|
dMeter_arrowErase(&i_Meter->field_0x2e10[0]);
|
|
}
|
|
if ((g_dComIfG_gameInfo.play.getDirection() & 2) != 0) {
|
|
if (i_Meter->field_0x2e10[1].mUserArea == 0) {
|
|
if (i_Meter->field_0x3025 == 0 || i_Meter->field_0x3025 == 0x14) {
|
|
i_Meter->field_0x2e10[1].mUserArea = 1;
|
|
}
|
|
}
|
|
} else {
|
|
dMeter_arrowErase(&i_Meter->field_0x2e10[1]);
|
|
}
|
|
if ((g_dComIfG_gameInfo.play.getDirection() & 4) != 0) {
|
|
if (i_Meter->field_0x2e10[2].mUserArea == 0) {
|
|
if (i_Meter->field_0x3025 == 0 || i_Meter->field_0x3025 == 0x14) {
|
|
i_Meter->field_0x2e10[2].mUserArea = 1;
|
|
}
|
|
}
|
|
} else {
|
|
dMeter_arrowErase(&i_Meter->field_0x2e10[2]);
|
|
}
|
|
if ((g_dComIfG_gameInfo.play.getDirection() & 8) != 0) {
|
|
if (i_Meter->field_0x2e10[3].mUserArea == 0) {
|
|
if (i_Meter->field_0x3025 == 0 || i_Meter->field_0x3025 == 0x14) {
|
|
i_Meter->field_0x2e10[3].mUserArea = 1;
|
|
}
|
|
}
|
|
} else {
|
|
dMeter_arrowErase(&i_Meter->field_0x2e10[3]);
|
|
}
|
|
}
|
|
|
|
/* 80202580-80202770 .text dMeter_arrowTransScale__FP15sub_meter_classffi */
|
|
void dMeter_arrowTransScale(sub_meter_class* i_Meter, f32 param_2, f32 param_3, int param_4) {
|
|
f32 fVar1;
|
|
f32 fVar2;
|
|
f32 fVar3;
|
|
f32 dVar4;
|
|
|
|
switch (param_4) {
|
|
case 0:
|
|
fVar1 = i_Meter->field_0x2e10[0].mPosTopLeftOrig.x + i_Meter->field_0x2e10[0].mSizeOrig.x;
|
|
fVar2 = i_Meter->field_0x2e10[0].mPosTopLeftOrig.y;
|
|
i_Meter->field_0x2e10[0].mSize.x = i_Meter->field_0x2e10[0].mSizeOrig.x * param_3;
|
|
i_Meter->field_0x2e10[0].mSize.y = i_Meter->field_0x2e10[0].mSizeOrig.y;
|
|
i_Meter->field_0x2e10[0].mPosTopLeft.x =fVar1 - param_2 - i_Meter->field_0x2e10[0].mSize.x;
|
|
i_Meter->field_0x2e10[0].mPosTopLeft.y = fVar2;
|
|
break;
|
|
case 1:
|
|
fVar1 = i_Meter->field_0x2e10[1].mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x2e10[1].mPosTopLeftOrig.y;
|
|
i_Meter->field_0x2e10[1].mSize.x = i_Meter->field_0x2e10[1].mSizeOrig.x;
|
|
i_Meter->field_0x2e10[1].mSize.y = i_Meter->field_0x2e10[1].mSizeOrig.y * param_3;
|
|
i_Meter->field_0x2e10[1].mPosTopLeft.x = fVar1;
|
|
i_Meter->field_0x2e10[1].mPosTopLeft.y = fVar2 + param_2;
|
|
break;
|
|
case 2:
|
|
fVar1 = i_Meter->field_0x2e10[2].mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x2e10[2].mPosTopLeftOrig.y;
|
|
i_Meter->field_0x2e10[2].mSize.x = i_Meter->field_0x2e10[2].mSizeOrig.x * param_3;
|
|
i_Meter->field_0x2e10[2].mSize.y = i_Meter->field_0x2e10[2].mSizeOrig.y;
|
|
i_Meter->field_0x2e10[2].mPosTopLeft.x = fVar1 + param_2;
|
|
i_Meter->field_0x2e10[2].mPosTopLeft.y = fVar2;
|
|
break;
|
|
case 3:
|
|
fVar1 = i_Meter->field_0x2e10[3].mPosTopLeftOrig.x;
|
|
fVar2 = i_Meter->field_0x2e10[3].mPosTopLeftOrig.y + i_Meter->field_0x2e10[3].mSizeOrig.y;
|
|
i_Meter->field_0x2e10[3].mSize.x = i_Meter->field_0x2e10[3].mSizeOrig.x;
|
|
i_Meter->field_0x2e10[3].mSize.y = i_Meter->field_0x2e10[3].mSizeOrig.y * param_3;
|
|
i_Meter->field_0x2e10[3].mPosTopLeft.x = fVar1;
|
|
i_Meter->field_0x2e10[3].mPosTopLeft.y = fVar2 - param_2 - i_Meter->field_0x2e10[3].mSize.y;
|
|
break;
|
|
}
|
|
i_Meter->field_0x2e10[param_4].pane->move((int)i_Meter->field_0x2e10[param_4].mPosTopLeft.x, (int)i_Meter->field_0x2e10[param_4].mPosTopLeft.y);
|
|
i_Meter->field_0x2e10[param_4].pane->resize((int)i_Meter->field_0x2e10[param_4].mSize.x, (int)i_Meter->field_0x2e10[param_4].mSize.y);
|
|
}
|
|
|
|
/* 80202770-80203298 .text dMeter_arrowAnime__FP15sub_meter_class */
|
|
void dMeter_arrowAnime(sub_meter_class* i_Meter) {
|
|
/* Nonmatching */
|
|
static const f32 scale[] = {1.0f, 1.9f, 1.0f, 1.9f};
|
|
static const s32 trans[] = {0, 30, 0, 30};
|
|
static const u8 white[] = {0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF};
|
|
static const u8 black[] = {0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00};
|
|
s16 iVar6;
|
|
f32 dVar7;
|
|
|
|
for (s32 i = 0; i < 4; i++) {
|
|
if (i_Meter->field_0x2e10[i].mUserArea == 1) {
|
|
iVar6 = i_Meter->field_0x3025;
|
|
if (iVar6 > 0x14) {
|
|
iVar6 = (s16)(i_Meter->field_0x3025 + -0x14);
|
|
}
|
|
dVar7 = fopMsgM_valueIncrease(10, iVar6, 0);
|
|
dMeter_arrowTransScale(i_Meter, (dVar7 * (trans[1] - trans[0])) + trans[0], (dVar7 * (scale[1] - scale[0])) + scale[0], i);
|
|
fopMsgM_setNowAlpha(&i_Meter->field_0x2e10[i], dVar7 * 0.8627451f);
|
|
GXColor color1;
|
|
color1.r = (dVar7 * (black[4] - black[0])) + black[0];
|
|
color1.g = (dVar7 * (black[5] - black[1])) + black[1];
|
|
color1.b = (dVar7 * (black[6] - black[2])) + black[2];
|
|
color1.a = (dVar7 * (black[7] - black[3])) + black[3];
|
|
GXColor color2;
|
|
color2.r = (dVar7 * (white[4] - white[0])) + white[0];
|
|
color2.g = (dVar7 * (white[5] - white[1])) + white[1];
|
|
color2.b = (dVar7 * (white[6] - white[2])) + white[2];
|
|
color2.a = (dVar7 * (white[7] - white[3])) + white[3];
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setBlack(color1);
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setWhite(color2);
|
|
if ((s16)iVar6 == 10) {
|
|
i_Meter->field_0x2e10[i].mUserArea = 2;
|
|
}
|
|
} else if (i_Meter->field_0x2e10[i].mUserArea == 2) {
|
|
if (i_Meter->field_0x3025 <= 0x14) {
|
|
dVar7 = fopMsgM_valueIncrease(10, (i_Meter->field_0x3025 + -10), 0);
|
|
dMeter_arrowTransScale(i_Meter, (dVar7 * (trans[2] - trans[1])) + trans[1], (dVar7 * (scale[2] - scale[1])) + scale[1], i);
|
|
GXColor color1;
|
|
color1.r = (dVar7 * (black[8] - black[4])) + black[4];
|
|
color1.g = (dVar7 * (black[9] - black[5])) + black[5];
|
|
color1.b = (dVar7 * (black[10] - black[6])) + black[6];
|
|
color1.a = (dVar7 * (black[11] - black[7])) + black[7];
|
|
GXColor color2;
|
|
color2.r = (dVar7 * (white[8] - white[4])) + white[4];
|
|
color2.g = (dVar7 * (white[9] - white[5])) + white[5];
|
|
color2.b = (dVar7 * (white[10] - white[6])) + white[6];
|
|
color2.a = (dVar7 * (white[11] - white[7])) + white[7];
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setBlack(color1);
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setWhite(color2);
|
|
} else {
|
|
dVar7 = fopMsgM_valueIncrease(10, (i_Meter->field_0x3025 + -0x14), 0);
|
|
dMeter_arrowTransScale(i_Meter, (dVar7 * (trans[3] - trans[2])) + trans[2], (dVar7 * (scale[3] - scale[2])) + scale[2], i);
|
|
GXColor color1;
|
|
color1.r = (dVar7 * (black[12] - black[8])) + black[8];
|
|
color1.g = (dVar7 * (black[13] - black[9])) + black[9];
|
|
color1.b = (dVar7 * (black[14] - black[10])) + black[10];
|
|
color1.a = (dVar7 * (black[15] - black[11])) + black[11];
|
|
GXColor color2;
|
|
color2.r = (dVar7 * (white[12] - white[8])) + white[8];
|
|
color2.g = (dVar7 * (white[13] - white[9])) + white[9];
|
|
color2.b = (dVar7 * (white[14] - white[10])) + white[10];
|
|
color2.a = (dVar7 * (white[15] - white[11])) + white[11];
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setBlack(color1);
|
|
((J2DPicture*)i_Meter->field_0x2e10[i].pane)->setWhite(color2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80203298-80203354 .text dMeter_arrowErase__FP18fopMsgM_pane_class */
|
|
void dMeter_arrowErase(fopMsgM_pane_class* param_1) {
|
|
if (param_1->mUserArea != 0) {
|
|
fopMsgM_setNowAlphaZero(param_1);
|
|
fopMsgM_paneTrans(param_1, 0.0f, 0.0f);
|
|
fopMsgM_paneScaleXY(param_1, 1.0f);
|
|
((J2DPicture*)param_1->pane)->setBlack(0xFF000000);
|
|
((J2DPicture*)param_1->pane)->setWhite(0xFF0000FF);
|
|
param_1->mUserArea = 0;
|
|
}
|
|
}
|
|
|
|
/* 80203354-80203410 .text dMeter_arrowMove__FP15sub_meter_class */
|
|
void dMeter_arrowMove(sub_meter_class* i_Meter) {
|
|
if (dComIfGp_getAdvanceDirection() != 0 && !dMenu_flag()) {
|
|
dMeter_arrowCheckStatus(i_Meter);
|
|
i_Meter->field_0x3025++;
|
|
dMeter_arrowAnime(i_Meter);
|
|
if (i_Meter->field_0x3025 < 30) {
|
|
return;
|
|
}
|
|
i_Meter->field_0x3025 = 10;
|
|
return;
|
|
}
|
|
if (i_Meter->field_0x3025 != 0) {
|
|
i_Meter->field_0x3025 = 0;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
dMeter_arrowErase(&i_Meter->field_0x2e10[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80203410-80203464 .text dMeter_arrowDraw__FP15sub_meter_class */
|
|
void dMeter_arrowDraw(sub_meter_class* i_Meter) {
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2e10[i]);
|
|
}
|
|
}
|
|
|
|
/* 80203464-8020408C .text dMeter_screenDataSet__FP15sub_meter_class */
|
|
void dMeter_screenDataSet(sub_meter_class* i_Meter) {
|
|
fopMsgM_setPaneData(&i_Meter->field_0x02f8, sMainParts1, 'wiy1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0100[0], sMainParts1, 'yrig');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0100[1], sMainParts1, 'yup');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0100[2], sMainParts1, 'ylef');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0250, sMainParts1, 'r');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0288, sMainParts1, 'l');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x02c0, sMainParts1, 'crs1');
|
|
i_Meter->field_0x0100[0].mPosCenterOrig.x -= 2.0f;
|
|
i_Meter->field_0x0100[1].mPosCenterOrig.y -= 2.0f;
|
|
i_Meter->field_0x0100[2].mPosCenterOrig.x -= 1.0f;
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0368, sMainParts1, 'bey1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x03a0, sMainParts1, 'bey2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x03d8, sMainParts1, 'enem');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0410, sMainParts1, 'enm2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0448[0], sMainParts1, 'ben1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0448[1], sMainParts1, 'ben2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0448[2], sMainParts1, 'ben3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0448[3], sMainParts1, 'ben4');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0528, sMainParts1, 'ene3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0560, sMainParts1, 'ene2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0598, sMainParts1, 'ene1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x05d0, sMainParts1, 'enk2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0608, sMainParts1, 'enek');
|
|
s32 unk_13361[] = {'ht00', 'ht01', 'ht02', 'ht03', 'ht04', 'ht05', 'ht06', 'ht07', 'ht08', 'ht09',
|
|
'ht10', 'ht11', 'ht12', 'ht13', 'ht14', 'ht15', 'ht16', 'ht17', 'ht18', 'ht19'};
|
|
s32 unk_13362[] = {'hk00', 'hk01', 'hk02', 'hk03', 'hk04', 'hk05', 'hk06', 'hk07', 'hk08', 'hk09',
|
|
'hk10', 'hk11', 'hk12', 'hk13', 'hk14', 'hk15', 'hk16', 'hk17', 'hk18', 'hk19'};
|
|
for (s32 i = 0; i < 20; i++) {
|
|
fopMsgM_setPaneData(&i_Meter->mHeart[i], sMainParts1, unk_13361[i]);
|
|
fopMsgM_setPaneData(&i_Meter->mHeartShadow[i], sMainParts1, unk_13362[i]);
|
|
}
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f00, sMainParts1, 'htfl');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[0], sMainParts1, 'mbr1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[1], sMainParts1, 'mbr2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[2], sMainParts1, 'mbr3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[3], sMainParts1, 'mbr4');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[4], sMainParts1, 'mbr5');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[5], sMainParts1, 'mbr6');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[6], sMainParts1, 'mbr7');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x0f38[7], sMainParts1, 'mbr8');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x10f8, sMainParts1, 'mbb3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1130, sMainParts1, 'mbb2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x11a0, sMainParts1, 'mbb1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1168, sMainParts1, 'mbk2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x11d8, sMainParts1, 'mbk1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1210, sMainParts1, 'cmcv');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1248, sMainParts1, 'cmmg');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1280, sMainParts1, 'cmmk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x12b8, sMainParts1, 'cmrg');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x12f0, sMainParts1, 'cmb1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1398, sMainParts3, 'bar');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x13d0, sMainParts3, 'rng2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1408, sMainParts3, 'hrz1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1440, sMainParts3, 'hrz2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1478[0], sMainParts3, 'str5');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1478[1], sMainParts3, 'str6');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1478[2], sMainParts3, 'str7');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1520, sMainParts3, 'mon2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1558, sMainParts3, 'sun2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1590[0], sMainParts3, 'cir1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1590[1], sMainParts3, 'cir2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1590[2], sMainParts3, 'cir3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1590[3], sMainParts3, 'cir4');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1670, sMainParts3, 'cnt2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x16a8, sMainParts3, 'cnt1');
|
|
((J2DPicture*)i_Meter->field_0x16a8.pane)->setWhite(0x00000000);
|
|
fopMsgM_setPaneData(&i_Meter->field_0x16e0, sMainParts3, 'rng1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1718[0], sMainParts3, 'str1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1718[1], sMainParts3, 'str2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1718[2], sMainParts3, 'str3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1718[3], sMainParts3, 'str4');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x17f8, sMainParts3, 'mon1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1830, sMainParts3, 'clp');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1868[0], sMainParts3, 'cld1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1868[1], sMainParts3, 'cld2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1868[2], sMainParts3, 'cld3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1910, sMainParts3, 'sun1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1948, sMainParts3, 'cmtm');
|
|
((J2DPicture*)i_Meter->field_0x1830.pane)->setWhite(0x00000000);
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1980, sMainParts1, 'kyl1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x19b8, sMainParts1, 'kyl2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1ad0[0], sMainParts1, 'nm03');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1ad0[1], sMainParts1, 'nm04');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1c20[0], sMainParts1, 'nm08');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1c20[1], sMainParts1, 'nm09');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1c90, sMainParts1, 'key0');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1cc8, sMainParts1, 'basv');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1d00, sMainParts1, 'bawd');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1d38, sMainParts1, 'bawp');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1da8[1], sMainParts1, 'baa2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1e18[1], sMainParts1, 'bat2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1fd8[1], sMainParts1, 'y01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1f30[1], sMainParts1, 'y10');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2080[1], sMainParts1, 'yitm');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2128[1], sMainParts1, 'yitk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2320[1], sMainParts1, 'bly1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x23c8[1], sMainParts1, 'bly2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2470[1], sMainParts1, 'bly3');
|
|
i_Meter->field_0x2320[1].pane->hide();
|
|
i_Meter->field_0x23c8[1].pane->hide();
|
|
i_Meter->field_0x2470[1].pane->hide();
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1fd8[0], sMainParts1, 'x01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1f30[0], sMainParts1, 'x10');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2080[0], sMainParts1, 'xitm');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2128[0], sMainParts1, 'xitk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2320[0], sMainParts1, 'blx1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x23c8[0], sMainParts1, 'blx2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2470[0], sMainParts1, 'blx3');
|
|
i_Meter->field_0x2320[0].pane->hide();
|
|
i_Meter->field_0x23c8[0].pane->hide();
|
|
i_Meter->field_0x2470[0].pane->hide();
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1fd8[2], sMainParts1, 'z01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1f30[2], sMainParts1, 'z10');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2080[2], sMainParts1, 'zitm');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2128[2], sMainParts1, 'zitk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2320[2], sMainParts1, 'blz1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x23c8[2], sMainParts1, 'blz2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2470[2], sMainParts1, 'blz3');
|
|
i_Meter->field_0x2320[2].pane->hide();
|
|
i_Meter->field_0x23c8[2].pane->hide();
|
|
i_Meter->field_0x2470[2].pane->hide();
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2518, sMainParts1, 'baz');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2550[1], sMainParts1, 'bay');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x25c0[1], sMainParts1, 'b002');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2630[1], sMainParts1, 'ba02');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2550[0], sMainParts1, 'bax1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x25c0[0], sMainParts1, 'b001');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2630[0], sMainParts1, 'ba01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1da8[0], sMainParts1, 'baa');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1e18[0], sMainParts1, 'bawe');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x26a0, sMainParts1, 'bar1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x26d8, sMainParts1, 'ba0r');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2748, sMainParts1, 'a10');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2780, sMainParts1, 'a01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x27b8, sMainParts1, 'yum');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x27f0, sMainParts1, 'yumk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2828, sMainParts1, 'weit');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2860, sMainParts1, 'witk');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2898, sMainParts1, 'bab');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x28d0, sMainParts1, 'baat');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2908, sMainParts1, 'cent');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2940[0], sMainParts1, 'arw1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x29b0[0], sMainParts1, 'ip00');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2940[1], sMainParts1, 'arw2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x29b0[1], sMainParts1, 'ip02');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a20, sMainParts2, 'rup1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a58, sMainParts2, 'rup2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x19f0[0], sMainParts2, 'nm00');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x19f0[1], sMainParts2, 'nm01');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x19f0[2], sMainParts2, 'nm02');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x19f0[3], sMainParts2, 'nm03');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1b40[0], sMainParts2, 'nm04');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1b40[1], sMainParts2, 'nm05');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1b40[2], sMainParts2, 'nm06');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x1b40[3], sMainParts2, 'nm07');
|
|
i_Meter->field_0x19f0[1].mUserArea = dComIfGs_getWalletSize();
|
|
dMeter_walletChange(i_Meter);
|
|
}
|
|
|
|
/* 8020408C-8020438C .text dMeter_screenDataTimeSet__FP15sub_meter_class */
|
|
void dMeter_screenDataTimeSet(sub_meter_class* i_Meter) {
|
|
sScrTimer1 = new J2DScreen();
|
|
JUT_ASSERT(12863, sScrTimer1 != NULL);
|
|
sScrTimer2 = new J2DScreen();
|
|
JUT_ASSERT(12865, sScrTimer2 != NULL);
|
|
sScrTimer1->set("time_swim_1.blo", dComIfGp_getSwimResArchive());
|
|
sScrTimer2->set("time_swim_2.blo", dComIfGp_getSwimResArchive());
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[8], sScrTimer2, 'hk33');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[7], sScrTimer2, 'hk32');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[6], sScrTimer2, 'hk31');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[5], sScrTimer2, 'hk23');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[4], sScrTimer2, 'hk22');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[3], sScrTimer2, 'hk21');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[2], sScrTimer2, 'hk13');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[1], sScrTimer2, 'hk12');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2a90[0], sScrTimer2, 'hk11');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2c88, sScrTimer2, 'wk00');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2cc0, sScrTimer2, 'msk2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2d30, sScrTimer1, 'msk1');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2cf8, sScrTimer1, 'soul');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2da0, sScrTimer1, 'main');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2dd8, sScrTimer1, 'kg00');
|
|
sScrTimer2->search('kra')->hide();
|
|
}
|
|
|
|
/* 8020438C-80204404 .text dMeter_screenDataArrowSet__FP15sub_meter_class */
|
|
void dMeter_screenDataArrowSet(sub_meter_class* i_Meter) {
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2e10[0], sChoiceRoad, 'yaz4');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2e10[1], sChoiceRoad, 'yaz3');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2e10[2], sChoiceRoad, 'yaz2');
|
|
fopMsgM_setPaneData(&i_Meter->field_0x2e10[3], sChoiceRoad, 'yaz1');
|
|
}
|
|
|
|
/* 80204404-80204820 .text dMeter_Draw__FP15sub_meter_class */
|
|
static BOOL dMeter_Draw(sub_meter_class* i_Meter) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x02f8);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0100[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0250);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0288);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x02c0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0368);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x03a0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x03d8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0410);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0448[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0528);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0560);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0598);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0608);
|
|
dMeter_heartDraw(i_Meter);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x0f38[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x10f8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x11a0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x11d8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1210);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x12f0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1398);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x13d0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1408);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1440);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1478[i]);
|
|
fopMsgM_setAlpha(i_Meter->field_0x1868);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1520);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1558);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1590[i]);
|
|
fopMsgM_setAlpha(i_Meter->field_0x1718);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1670);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x16a8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x16e0);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x17f8);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1830);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1910);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1948);
|
|
if (i_Meter->field_0x1830.pane->isVisible() && i_Meter->field_0x3020 == 7) {
|
|
for (s32 i = 0; i < 3; i++) {
|
|
clock[i].mBlack.a = i_Meter->field_0x1830.mNowAlpha;
|
|
}
|
|
} else {
|
|
for (s32 i = 0; i < 3; i++) {
|
|
clock[i].mBlack.a = 0;
|
|
}
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1980);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x19b8);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1ad0[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1c20[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1c90);
|
|
dMeter_weponDraw(i_Meter);
|
|
dMeter_actionDraw(i_Meter);
|
|
dMeter_xyDraw(i_Meter);
|
|
dMeter_rDraw(i_Meter);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&i_Meter->field_0x19f0[i]);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x1b40[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2a20);
|
|
fopMsgM_setAlpha(&i_Meter->field_0x2a58);
|
|
dMeter_swimDraw(i_Meter);
|
|
dMeter_arrowDraw(i_Meter);
|
|
if (!fopOvlpM_IsDoingReq()) {
|
|
dComIfGd_set2DOpa(&meter1);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
dComIfGd_set2DOpa(&clock[i]);
|
|
}
|
|
if (sScrTimer1 != NULL && sScrTimer2 != NULL) {
|
|
dComIfGd_set2DOpa(&tekari);
|
|
}
|
|
dComIfGd_set2DOpaTop(&meter2);
|
|
dMeter_moveItemDraw(i_Meter);
|
|
if (i_Meter->field_0x3028 == 1 && dComIfGp_getMetronome() && !(i_Meter->mStatusFlags & dMtrStts_UNK8_e) &&
|
|
!(i_Meter->mStatusFlags & dMtrStts_UNK10_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK800000_e) && !(i_Meter->mStatusFlags & dMtrStts_UNK20_e))
|
|
{
|
|
dComIfGd_set2DOpa(dMn_c);
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80204820-80204C20 .text dMeter_Execute__FP15sub_meter_class */
|
|
static BOOL dMeter_Execute(sub_meter_class* i_Meter) {
|
|
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_Meter->heap);
|
|
i_Meter->field_0x3024 = 0;
|
|
dMeter_statusCheck(i_Meter);
|
|
dMeter_alphaControl(i_Meter);
|
|
dMeter_heartMove(i_Meter);
|
|
dMeter_actionMove(i_Meter);
|
|
dMeter_weponMove(i_Meter);
|
|
dMeter_xyMove(i_Meter);
|
|
dMeter_rMove(i_Meter);
|
|
|
|
f32 f31 = g_meterHIO.field_0x40 / 100.0f;
|
|
f32 f30 = g_meterHIO.field_0x44 / 100.0f;
|
|
f32 f29 = g_meterHIO.field_0x46 / 100.0f;
|
|
|
|
dMeter_parentPaneTrans(&i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2898, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x28d0, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTransOnly(&i_Meter->field_0x1d00, &i_Meter->field_0x2908, f31, f30);
|
|
dMeter_childPaneTransOnly(&i_Meter->field_0x2828, &i_Meter->field_0x2908, f31, f29);
|
|
dMeter_childPaneTransChildTrans(&i_Meter->field_0x2860, &i_Meter->field_0x2908, &i_Meter->field_0x2828, f31, f29);
|
|
dMeter_childPaneTransOnly(&i_Meter->field_0x1d38, &i_Meter->field_0x2908, f31, f30);
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
dMeter_childPaneTrans(&i_Meter->field_0x1e18[i], &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x1da8[i], &i_Meter->field_0x2908, f31);
|
|
}
|
|
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2748, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2780, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x27b8, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x27f0, &i_Meter->field_0x2908, f31);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
dMeter_childPaneTransOnly(&i_Meter->field_0x2080[i], &i_Meter->field_0x2908, f31, f29);
|
|
dMeter_childPaneTransChildTransOnly(&i_Meter->field_0x1fd8[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
dMeter_childPaneTransChildTransOnly(&i_Meter->field_0x1f30[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
dMeter_childPaneTransChildTrans(&i_Meter->field_0x2128[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
dMeter_childPaneTransChildTrans(&i_Meter->field_0x2320[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
dMeter_childPaneTransChildTrans(&i_Meter->field_0x23c8[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
dMeter_childPaneTransChildTrans(&i_Meter->field_0x2470[i], &i_Meter->field_0x2908, &i_Meter->field_0x2080[i], f31, f29);
|
|
}
|
|
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2518, &i_Meter->field_0x2908, f31);
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2550[i], &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x25c0[i], &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x2630[i], &i_Meter->field_0x2908, f31);
|
|
}
|
|
|
|
dMeter_childPaneTransOnly(&i_Meter->field_0x1cc8, &i_Meter->field_0x2908, f31, f30);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x26d8, &i_Meter->field_0x2908, f31);
|
|
dMeter_childPaneTrans(&i_Meter->field_0x26a0, &i_Meter->field_0x2908, f31);
|
|
|
|
dMeter_enemyMove(i_Meter);
|
|
dMeter_magicMove(i_Meter);
|
|
dMeter_windMove(i_Meter);
|
|
dMeter_metronomeMove(i_Meter);
|
|
dMeter_rupyMove(i_Meter);
|
|
dMeter_keyMove(i_Meter);
|
|
dMeter_compassMove(i_Meter);
|
|
dMeter_mapMove(i_Meter);
|
|
dMeter_swimMove(i_Meter);
|
|
dMeter_arrowMove(i_Meter);
|
|
|
|
if (dMeter_itemMoveFlagCheck()) {
|
|
dMeter_moveItemMove(i_Meter);
|
|
}
|
|
dMeter_arwMove(i_Meter);
|
|
dMeter_placeNameMove();
|
|
dMeter_menuMove(i_Meter);
|
|
dMeter_gaugeAlpha(i_Meter);
|
|
dComIfGp_setButtonActionMode(i_Meter->field_0x3024);
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80204C20-80204C28 .text dMeter_IsDelete__FP15sub_meter_class */
|
|
static BOOL dMeter_IsDelete(sub_meter_class* i_Meter) {
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80204C28-80205034 .text dMeter_Delete__FP15sub_meter_class */
|
|
static BOOL dMeter_Delete(sub_meter_class* i_Meter) {
|
|
JKRHeap* pJVar1 = mDoExt_setCurrentHeap(i_Meter->heap);
|
|
if ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0) {
|
|
g_dComIfG_gameInfo.play.field_0x497a = 0;
|
|
} else {
|
|
g_dComIfG_gameInfo.play.field_0x497a = 1;
|
|
}
|
|
if (rupy_soundOnFlag != 0) {
|
|
mDoAud_seStart(JA_SE_LUPY_INC_CNT_2);
|
|
rupy_soundSetFlag = 0;
|
|
rupy_soundOnFlag = 0;
|
|
}
|
|
if (dMeter_windID != fpcM_ERROR_PROCESS_ID_e) {
|
|
if (fopMsgM_SearchByID(dMeter_windID) != NULL) {
|
|
msg_class* pmVar2 = fopMsgM_SearchByID(dMeter_windID);
|
|
fopMsgM_Delete(pmVar2);
|
|
dMeter_windID = fpcM_ERROR_PROCESS_ID_e;
|
|
dMeter_windStatus = 0;
|
|
} else {
|
|
dMeter_windID = fpcM_ERROR_PROCESS_ID_e;
|
|
dMeter_windStatus = 0;
|
|
}
|
|
}
|
|
if (i_Meter->mpRupyParticle != NULL) {
|
|
i_Meter->mpRupyParticle->becomeInvalidEmitter();
|
|
i_Meter->mpRupyParticle->quitImmortalEmitter();
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Meter->field_0x2f24[i] != NULL) {
|
|
i_Meter->field_0x2f24[i]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f24[i]->quitImmortalEmitter();
|
|
}
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Meter->field_0x2f2c[i] != NULL) {
|
|
i_Meter->field_0x2f2c[i]->becomeInvalidEmitter();
|
|
i_Meter->field_0x2f2c[i]->quitImmortalEmitter();
|
|
}
|
|
}
|
|
if (dMn_c != NULL) {
|
|
dMn_c->_delete();
|
|
delete dMn_c;
|
|
dMn_c = NULL;
|
|
}
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->heap->free(i_Meter->actionTex[i]);
|
|
i_Meter->heap->free(i_Meter->xyIconTex[i]);
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
i_Meter->heap->free(i_Meter->arrowTex[i]);
|
|
if (i == 0) {
|
|
i_Meter->heap->free(i_Meter->moveIconTex[i]);
|
|
}
|
|
}
|
|
delete sMainParts1;
|
|
delete sMainParts2;
|
|
delete sMainParts3;
|
|
if (sScrTimer1 != NULL && sScrTimer2 != NULL) {
|
|
dComIfGp_getSwimResArchive()->removeResourceAll();
|
|
delete sScrTimer1;
|
|
delete sScrTimer2;
|
|
sScrTimer1 = NULL;
|
|
sScrTimer2 = NULL;
|
|
}
|
|
delete sChoiceRoad;
|
|
sChoiceRoad = NULL;
|
|
delete moveItemPane;
|
|
moveItemPane = NULL;
|
|
mDoExt_setCurrentHeap(pJVar1);
|
|
fopMsgM_destroyExpHeap(i_Meter->heap);
|
|
mDoHIO_deleteChild(g_meterHIO.mNo);
|
|
mDoHIO_deleteChild(g_menuHIO.mNo);
|
|
mDoHIO_deleteChild(g_msgHIO.mNo);
|
|
mDoHIO_deleteChild(g_messageHIO.mNo);
|
|
mDoHIO_deleteChild(g_meter_mapHIO.mNo);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80205034-802057B8 .text dMeter_Create__FP9msg_class */
|
|
static cPhs_State dMeter_Create(msg_class* i_this) {
|
|
sub_meter_class* i_Meter = (sub_meter_class*)i_this;
|
|
|
|
#if VERSION > VERSION_DEMO
|
|
mapAlpha = 0;
|
|
menu_status = 0;
|
|
menu_status_old = 0;
|
|
dMenu_pause = 0;
|
|
dMenu_frame_timer = 0;
|
|
dMenu_menuButton = 0;
|
|
subWinFlag = 0;
|
|
dMeter_auctionFlag = 0;
|
|
dMeter_itemMoveFlag = 0;
|
|
dMeter_btn_chk = 0;
|
|
dMeter_itemNum = 0;
|
|
dMeter_itemTimer = 0;
|
|
texRateX = 0.0f;
|
|
texRateY = 0.0f;
|
|
texScaleX = 0.0f;
|
|
texScaleY = 0.0f;
|
|
dMenu_menuFlag = 0;
|
|
dMeter_place_name = 0;
|
|
dMeter_itemMode = 0;
|
|
dMeter_collectMode = 0;
|
|
rupy_soundSetFlag = 0;
|
|
rupy_soundOnFlag = 0;
|
|
#endif
|
|
|
|
i_Meter->heap = fopMsgM_createExpHeap(0x2a819);
|
|
JUT_ASSERT(13475, i_Meter->heap != NULL);
|
|
|
|
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_Meter->heap);
|
|
sMainParts1 = new MyScreen();
|
|
JUT_ASSERT(13480, sMainParts1 != NULL);
|
|
sMainParts1->set("main_parts1.blo", dComIfGp_getMenuArchive());
|
|
|
|
sMainParts2 = new J2DScreen();
|
|
JUT_ASSERT(13484, sMainParts2 != NULL);
|
|
sMainParts2->set("main_parts2.blo", dComIfGp_getMenuArchive());
|
|
|
|
sMainParts3 = new J2DScreen();
|
|
JUT_ASSERT(13488, sMainParts3 != NULL);
|
|
sMainParts3->set("main_parts3.blo", dComIfGp_getMenuArchive());
|
|
|
|
sChoiceRoad = new J2DScreen();
|
|
JUT_ASSERT(13492, sChoiceRoad != NULL);
|
|
sChoiceRoad->set("choice_road.blo", dComIfGp_getMenuArchive());
|
|
|
|
for (s32 i = 0; i < 3; i++) {
|
|
i_Meter->actionTex[i] = (ResTIMG*)i_Meter->heap->alloc(0xc00, 0x20);
|
|
JUT_ASSERT(13497, i_Meter->actionTex[i] != NULL);
|
|
|
|
i_Meter->xyIconTex[i] = (ResTIMG*)i_Meter->heap->alloc(0xc00, 0x20);
|
|
JUT_ASSERT(13499, i_Meter->xyIconTex[i] != NULL);
|
|
}
|
|
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i == 0) {
|
|
i_Meter->moveIconTex[i] = (ResTIMG*)i_Meter->heap->alloc(0xc00, 0x20);
|
|
JUT_ASSERT(13506, i_Meter->moveIconTex[i] != NULL);
|
|
}
|
|
|
|
i_Meter->arrowTex[i] = (ResTIMG*)i_Meter->heap->alloc(0xc00, 0x20);
|
|
JUT_ASSERT(13509, i_Meter->arrowTex[i] != NULL);
|
|
}
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
fopMsgM_Create(fpcNm_MENUWINDOW_e, NULL, NULL);
|
|
#else
|
|
if (strcmp(dComIfGp_getStartStageName(), "sea_T") != 0) {
|
|
fopMsgM_Create(fpcNm_MENUWINDOW_e, NULL, NULL);
|
|
}
|
|
#endif
|
|
|
|
fopMsgM_Create(fpcNm_MESG_e, NULL, NULL);
|
|
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setRStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setAStatusForce(dActStts_BLANK_e);
|
|
|
|
g_meterHIO.mNo = mDoHIO_createChild("通常画面表示", &g_meterHIO); // "Normal Screen Display"
|
|
g_menuHIO.mNo = mDoHIO_createChild("メニュー画面", &g_menuHIO); // "Menu Screen"
|
|
g_msgHIO.mNo = mDoHIO_createChild("Message(会話)", &g_msgHIO); // "Message (Talk)"
|
|
g_messageHIO.mNo = mDoHIO_createChild("Message(看板)", &g_messageHIO); // "Message (Sign)"
|
|
g_meter_mapHIO.mNo = mDoHIO_createChild("マップ2", &g_meter_mapHIO); // "Map 2"
|
|
|
|
dMeter_screenDataSet(i_Meter);
|
|
dMeter_screenDataArrowSet(i_Meter);
|
|
dComIfGp_2dShowOn();
|
|
i_Meter->field_0x2f6c = 1.0f;
|
|
i_Meter->field_0x2fd8 = g_meterHIO.field_0x6;
|
|
dMeter_mapInit(i_Meter);
|
|
dMeter_compassInit(i_Meter);
|
|
dMeter_arrowInit(i_Meter);
|
|
mDoExt_setCurrentHeap(i_Meter->heap);
|
|
dMeter_heartInit(i_Meter);
|
|
dMeter_weponInit(i_Meter);
|
|
dMeter_actionInit(i_Meter);
|
|
dMeter_xyInit(i_Meter);
|
|
dMeter_rInit(i_Meter);
|
|
dMeter_enemyInit(i_Meter);
|
|
dMeter_magicInit(i_Meter);
|
|
dMeter_menuInit(i_Meter);
|
|
dMeter_windInit(i_Meter);
|
|
dMeter_metronomeInit(i_Meter);
|
|
dMeter_rupyInit(i_Meter);
|
|
dMeter_keyInit(i_Meter);
|
|
dMeter_moveItemInit(i_Meter);
|
|
dMeter_arwInit(i_Meter);
|
|
dTimer_createStockTimer();
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
fopMsgM_setStageLayer(i_Meter);
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
/* 802057B8-80205814 .text __dt__16dDlst_2DMETER2_cFv */
|
|
dDlst_2DMETER2_c::~dDlst_2DMETER2_c() {
|
|
}
|
|
|
|
/* 80205814-80205870 .text __dt__16dDlst_2DMETER1_cFv */
|
|
dDlst_2DMETER1_c::~dDlst_2DMETER1_c() {
|
|
}
|
|
|
|
/* 80205870-802058B8 .text __dt__20dMeter_message_HIO_cFv */
|
|
dMeter_message_HIO_c::~dMeter_message_HIO_c() {
|
|
}
|
|
|
|
/* 802058B8-80205900 .text __dt__16dMeter_msg_HIO_cFv */
|
|
dMeter_msg_HIO_c::~dMeter_msg_HIO_c() {
|
|
}
|
|
|
|
/* 80205900-80205948 .text __dt__16dMeter_menuHIO_cFv */
|
|
dMeter_menuHIO_c::~dMeter_menuHIO_c() {
|
|
}
|
|
|
|
/* 80205948-80205990 .text __dt__12dMeter_HIO_cFv */
|
|
dMeter_HIO_c::~dMeter_HIO_c() {
|
|
}
|
|
|
|
/* 80205990-802059E0 .text __ct__16dMeter_map_HIO_cFv */
|
|
dMeter_map_HIO_c::dMeter_map_HIO_c() {
|
|
field_0x8 = 0x23;
|
|
field_0xa = 0x152;
|
|
field_0xc = -0xb4;
|
|
field_0x14 = 0x24e;
|
|
field_0x16 = 0x96;
|
|
field_0x6 = 200;
|
|
field_0x7 = 1;
|
|
field_0x10 = 0.8f;
|
|
}
|
|
|
|
/* 802059E0-80205A44 .text initMapCtrlDisp__13mapCtrlDisp_cFv */
|
|
void mapCtrlDisp_c::initMapCtrlDisp() {
|
|
dMap_setMapAlpha(0);
|
|
dMap_setIconFreeAlpha(0);
|
|
dMap_setMapDispMode(1);
|
|
dMap_setMapDispPosLeftUpX(g_meter_mapHIO.field_0x8);
|
|
dMap_setMapDispPosLeftUpY(g_meter_mapHIO.field_0xa);
|
|
dMap_setIconFreePosX(g_meter_mapHIO.field_0x14);
|
|
dMap_setIconFreePosY(g_meter_mapHIO.field_0x16);
|
|
dMap_setIconFreeScale(0.0f);
|
|
dMap_setIconSelfAlpha(0);
|
|
dMap_setIconSelfScale(0.0f);
|
|
dMap_setIconDispMode(0);
|
|
field_0x0 = 0;
|
|
field_0x1 = 0;
|
|
field_0x2 = 0;
|
|
field_0x4 = 0;
|
|
}
|
|
|
|
/* 80205A44-80205D24 .text moveMapCtrlDisp__13mapCtrlDisp_cFv */
|
|
void mapCtrlDisp_c::moveMapCtrlDisp() {
|
|
f32 fVar1;
|
|
f32 dVar7;
|
|
if (dCam_isManual(dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0))) != 0) {
|
|
if (field_0x2 < 9) {
|
|
field_0x2++;
|
|
if (field_0x2 < 6) {
|
|
dVar7 = fopMsgM_valueIncrease(6, field_0x2, 0);
|
|
fVar1 = dVar7 * 1.2f;
|
|
} else {
|
|
dVar7 = fopMsgM_valueIncrease(3, field_0x2 - 6, 2);
|
|
fVar1 = 1.2f - (dVar7 * 0.1f);
|
|
dVar7 = 1.0f;
|
|
}
|
|
} else {
|
|
dVar7 = 1.0f;
|
|
fVar1 = 1.1f;
|
|
}
|
|
} else {
|
|
if (field_0x2 > 5) {
|
|
field_0x2 = 5;
|
|
}
|
|
if (field_0x2 != 0) {
|
|
field_0x2--;
|
|
}
|
|
dVar7 = fopMsgM_valueIncrease(5, field_0x2, 2);
|
|
fVar1 = 1.1f;
|
|
}
|
|
dMap_c::setIconDispMode(dMapIconDisp_NONE_e);
|
|
s8 alpha = (u8)((dVar7 * 255.0f) * (g_meter_mapHIO.field_0x6 / 255.0f));
|
|
dMap_c::setIconFreeAlpha(alpha);
|
|
dMap_c::setIconFreeScale(fVar1 * g_meter_mapHIO.field_0x10);
|
|
if ((u8)alpha != 0) {
|
|
dMap_c::setIconDispMode(dMapIconDisp_FREE_e);
|
|
}
|
|
if (dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000400_e)) {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
BOOL temp = player->checkSubjectAccept() && !dComIfGp_event_runCheck();
|
|
if (temp) {
|
|
dMap_c::setIconSelfAlpha(0xCC);
|
|
dMap_c::setIconDispMode(dMapIconDisp_SELF_e );
|
|
}
|
|
}
|
|
if (dCam_getBody()->mCurMode == 4) {
|
|
dMap_c::setIconDispMode(dMapIconDisp_NONE_e);
|
|
}
|
|
if (field_0x0 != 0) {
|
|
if (field_0x4 != 0 && cLib_addCalcAngleS(&field_0x4, 0, 2, 0x3c, 10) == 0 && ((field_0x1 & 4) == 0)) {
|
|
mDoAud_seStart(JA_SE_MAP_SHOW_END);
|
|
}
|
|
} else {
|
|
cLib_addCalcAngleS(&field_0x4, g_meter_mapHIO.field_0xc - g_meter_mapHIO.field_0x8, 2, 0x3c, 10);
|
|
}
|
|
int uVar6_2 = ((dComIfGp_getWindow(0)->getScissor()->mYOrig + dComIfGp_getWindow(0)->getScissor()->mHeight) - 452.0f);
|
|
dMap_c::setMapDispPosLeftUpX(g_meter_mapHIO.field_0x8 + field_0x4);
|
|
dMap_c::setMapDispPosLeftUpY(g_meter_mapHIO.field_0xa);
|
|
if ((f32)(uVar6_2) < 0.0f) {
|
|
dMap_c::setMapDispPosLeftUpY(uVar6_2 + g_meter_mapHIO.field_0xa);
|
|
}
|
|
}
|
|
|
|
/* 80205D24-80205D6C .text __dt__16dMeter_map_HIO_cFv */
|
|
dMeter_map_HIO_c::~dMeter_map_HIO_c() {
|
|
}
|
|
|
|
static msg_method_class l_dMeter_Method = {
|
|
(process_method_func)dMeter_Create,
|
|
(process_method_func)dMeter_Delete,
|
|
(process_method_func)dMeter_Execute,
|
|
(process_method_func)dMeter_IsDelete,
|
|
(process_method_func)dMeter_Draw,
|
|
};
|
|
|
|
msg_process_profile_definition g_profile_METER = {
|
|
/* Layer ID */ fpcLy_CURRENT_e,
|
|
/* List ID */ 12,
|
|
/* List Prio */ fpcPi_CURRENT_e,
|
|
/* Proc Name */ fpcNm_METER_e,
|
|
/* Proc SubMtd */ &g_fpcLf_Method.base,
|
|
/* Size */ sizeof(sub_meter_class),
|
|
/* Size Other */ 0,
|
|
/* Parameters */ 0,
|
|
/* Leaf SubMtd */ &g_fopMsg_Method,
|
|
/* Draw Prio */ fpcDwPi_METER_e,
|
|
/* Msg SubMtd */ &l_dMeter_Method,
|
|
};
|