mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 21:54:50 -04:00
Use named constants instead of literals in some places
This commit is contained in:
@@ -28,8 +28,8 @@ public:
|
||||
bool _draw();
|
||||
|
||||
static const char m_arcname[];
|
||||
static const f32 static_float1;
|
||||
static const f32 static_float2;
|
||||
static const f32 m_search_r;
|
||||
static const f32 m_search_l;
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
void debugDraw();
|
||||
bool _draw();
|
||||
void createInit();
|
||||
u8 getArg();
|
||||
void getArg();
|
||||
cPhs_State _create();
|
||||
bool _delete();
|
||||
|
||||
|
||||
@@ -236,35 +236,39 @@ void daGhostship_c::getArg() {
|
||||
moonPhase = fopAcM_GetParamBit(param, 0, 8);
|
||||
}
|
||||
|
||||
/* 00000C8C-00000DFC .text daGhostshipCreate__FPv */
|
||||
static cPhs_State daGhostshipCreate(void* i_actor) {
|
||||
daGhostship_c* i_this = static_cast<daGhostship_c*>(i_actor);
|
||||
fopAcM_SetupActor(i_this, daGhostship_c);
|
||||
cPhs_State daGhostship_c::_create() {
|
||||
fopAcM_SetupActor(this, daGhostship_c);
|
||||
|
||||
cPhs_State result = dComIfG_resLoad(&i_this->mPhs, daGhostship_c::m_arc_name);
|
||||
cPhs_State result = dComIfG_resLoad(&mPhs, m_arc_name);
|
||||
if(result != cPhs_COMPLEATE_e) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result = dComIfG_resLoad(&i_this->mClothPhs, daGhostship_c::m_cloth_arc_name);
|
||||
result = dComIfG_resLoad(&mClothPhs, m_cloth_arc_name);
|
||||
if(result != cPhs_COMPLEATE_e) {
|
||||
return result;
|
||||
}
|
||||
|
||||
i_this->getArg();
|
||||
getArg();
|
||||
|
||||
if((s32)dComIfGs_getEventReg(0x8803) == 3) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(i_this, createHeap_CB, 0x1EA0)) {
|
||||
if (!fopAcM_entrySolidHeap(this, createHeap_CB, m_heapsize)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
i_this->createInit();
|
||||
createInit();
|
||||
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 00000C8C-00000DFC .text daGhostshipCreate__FPv */
|
||||
static cPhs_State daGhostshipCreate(void* i_this) {
|
||||
return ((daGhostship_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 00000FD8-00001024 .text daGhostshipDelete__FPv */
|
||||
static BOOL daGhostshipDelete(void* i_actor) {
|
||||
daGhostship_c* i_this = static_cast<daGhostship_c*>(i_actor);
|
||||
@@ -461,11 +465,15 @@ bool daGhostship_c::_draw() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000019A4-000019AC .text daGhostshipIsDelete__FPv */
|
||||
static BOOL daGhostshipIsDelete(void*) {
|
||||
bool daGhostship_c::_delete() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000019A4-000019AC .text daGhostshipIsDelete__FPv */
|
||||
static BOOL daGhostshipIsDelete(void* i_this) {
|
||||
return ((daGhostship_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
static actor_method_class daGhostshipMethodTable = {
|
||||
(process_method_func)daGhostshipCreate,
|
||||
(process_method_func)daGhostshipDelete,
|
||||
|
||||
+12
-14
@@ -73,12 +73,12 @@ static dCcD_SrcSph l_sph_src_col = {
|
||||
|
||||
const char daMachine_c::m_arcname[8] = "Hkikai1";
|
||||
|
||||
const f32 daMachine_c::static_float1 = 300.0f;
|
||||
const f32 daMachine_c::static_float2 = 800.0f;
|
||||
const f32 daMachine_c::m_search_r = 300.0f;
|
||||
const f32 daMachine_c::m_search_l = 800.0f;
|
||||
|
||||
/* 00000078-000000A8 .text _delete__11daMachine_cFv */
|
||||
bool daMachine_c::_delete() {
|
||||
dComIfG_resDelete(&mPhs, m_arcname);
|
||||
dComIfG_resDeleteDemo(&mPhs, m_arcname);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ void daMachine_c::CreateInit() {
|
||||
mpModel->calc();
|
||||
field_0xc14 = fopAcM_GetParam(this);
|
||||
if (field_0xc14 != 0xff){
|
||||
field_0xc18 = dPath_GetRoomPath(field_0xc14, current.roomNo);
|
||||
field_0xc18 = dPath_GetRoomPath(field_0xc14, fopAcM_GetRoomNo(this));
|
||||
if(field_0xc18 != NULL){
|
||||
field_0xc16 = 1;
|
||||
field_0xc15 = 1;
|
||||
@@ -233,22 +233,20 @@ daWindMill_c* daMachine_c::search_wind_mill() {
|
||||
|
||||
/* 00000734-000007F8 .text set_speed__11daMachine_cFv */
|
||||
void daMachine_c::set_speed() {
|
||||
f32 new_speed;
|
||||
f32 f31 = 5.0f;
|
||||
daWindMill_c* windmill = search_wind_mill();
|
||||
f32 local_1;
|
||||
|
||||
|
||||
f32 f1;
|
||||
if(windmill != NULL) {
|
||||
new_speed = (f32)windmill->mAngle[1]/(f32)daWindMill_c::m_max_rot_speed[windmill->mType];
|
||||
|
||||
s16 max_rot_speed = daWindMill_c::m_max_rot_speed[windmill->mType];;
|
||||
f1 = (f32)windmill->mAngle[1]/(f32)max_rot_speed;
|
||||
} else {
|
||||
new_speed = 0.0f;
|
||||
f1 = 0.0f;
|
||||
}
|
||||
|
||||
local_1 = speedF;
|
||||
new_speed = cLib_addCalc(&local_1, new_speed * 5.0f,0.1f,1.0f,0.5f);
|
||||
speedF = local_1;
|
||||
|
||||
f32 old_speedF = speedF;
|
||||
cLib_addCalc(&old_speedF, f31 * f1, 0.1f, 1.0f, 0.5f);
|
||||
speedF = old_speedF;
|
||||
}
|
||||
|
||||
/* 000007F8-00000898 .text _create__11daMachine_cFv */
|
||||
|
||||
@@ -22,7 +22,7 @@ const short daObjBarrel::Act_c::l_gnd_deg = 0xf;
|
||||
const float daObjBarrel::Act_c::l_viscous_resist = 0.006f;
|
||||
const float daObjBarrel::Act_c::l_inert_resist = 0.001f;
|
||||
const float daObjBarrel::Act_c::l_max_move = 30.0f;
|
||||
const short daObjBarrel::Act_c::l_max_vib_angl = 2048;
|
||||
const short daObjBarrel::Act_c::l_max_vib_angl = 0x800;
|
||||
const float daObjBarrel::Act_c::l_min_move_dir = 5.0f;
|
||||
const float daObjBarrel::Act_c::l_wind_max = 178.0f;
|
||||
const float daObjBarrel::Act_c::l_shape_vec = 25.0f;
|
||||
@@ -457,7 +457,7 @@ void daObjBarrel::Act_c::set_walk_rot() {
|
||||
if (mag > l_min_move_dir || (mMode == MODE_WAIT && mag > l_min_move_dir / 2)) {
|
||||
cLib_chaseAngleS(&shape_angle.y, targetAngle, 0x600);
|
||||
}
|
||||
float fVar2 = mag / ((cM_scos(shape_angle.z) * 5.0f + l_s_radius) * 6.28f) * 65535.0f;
|
||||
float fVar2 = mag / ((cM_scos(shape_angle.z) * 5.0f + l_s_radius) * 6.28f) * 0xFFFF;
|
||||
if (!negAngle) {
|
||||
m612 -= (short)(fVar2 * 3.0f);
|
||||
m630 -= (short)fVar2;
|
||||
|
||||
@@ -567,7 +567,7 @@ void daObj_Canon_c::createInit() {
|
||||
}
|
||||
|
||||
/* 00001804-00001880 .text getArg__13daObj_Canon_cFv */
|
||||
u8 daObj_Canon_c::getArg() {
|
||||
void daObj_Canon_c::getArg() {
|
||||
u32 param = fopAcM_GetParam(this);
|
||||
field_0x297 = fopAcM_GetParamBit(param, 0, 0xFF);
|
||||
field_0x296 = fopAcM_GetParamBit(param, 8, 0xFF);
|
||||
@@ -592,7 +592,7 @@ cPhs_State daObj_Canon_c::_create() {
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!fopAcM_entrySolidHeap(this, createHeap_CB, 0x8C0)) {
|
||||
if(!fopAcM_entrySolidHeap(this, createHeap_CB, m_heapsize)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
|
||||
@@ -1845,7 +1845,7 @@ cPhs_State daRd_c::_create() {
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
getArg();
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, createHeap_CB, 0x2520)) {
|
||||
if (!fopAcM_entrySolidHeap(this, createHeap_CB, m_heapsize)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
|
||||
+43
-42
@@ -32,17 +32,18 @@ static Vec l_cannon_top = {85.0f, 0.0f, 10.0f};
|
||||
static Vec l_tiller_top_offset = {34.0f, 0.0f, 15.0f};
|
||||
|
||||
|
||||
const s16 daShip_HIO_c0::tiller_speed = 0x02BC;
|
||||
const s16 daShip_HIO_c0::cannon_no_gravity_timer = 0x0008;
|
||||
const s16 daShip_HIO_c0::throw_start_angle_speed = 0x1194;
|
||||
const s16 daShip_HIO_c0::throw_return_angle_speed = 0x0E10;
|
||||
const f32 daShip_HIO_c0::paddle_speed = 10.0f;
|
||||
const f32 daShip_HIO_c0::min_speed = 0.0f;
|
||||
const f32 daShip_HIO_c0::wind_inc_speed = 55.0f;
|
||||
const f32 daShip_HIO_c0::r_inc_speed = 0.0f;
|
||||
const f32 daShip_HIO_c0::r_wind_inc_speed = 0.0f;
|
||||
const f32 daShip_HIO_c0::fly_rate = 0.6f;
|
||||
const f32 daShip_HIO_c0::wind_rate = 0.5f;
|
||||
// TODO: Use these named constants in the code instead of literals
|
||||
const s16 daShip_HIO_c0::tiller_speed = 700;
|
||||
const s16 daShip_HIO_c0::cannon_no_gravity_timer = 8;
|
||||
const s16 daShip_HIO_c0::throw_start_angle_speed = 4500;
|
||||
const s16 daShip_HIO_c0::throw_return_angle_speed = 3600;
|
||||
const f32 daShip_HIO_c0::paddle_speed = 10.0f; // TODO
|
||||
const f32 daShip_HIO_c0::min_speed = 0.0f; // TODO
|
||||
const f32 daShip_HIO_c0::wind_inc_speed = 55.0f; // TODO
|
||||
const f32 daShip_HIO_c0::r_inc_speed = 0.0f; // TODO
|
||||
const f32 daShip_HIO_c0::r_wind_inc_speed = 0.0f; // TODO
|
||||
const f32 daShip_HIO_c0::fly_rate = 0.6f; // TODO
|
||||
const f32 daShip_HIO_c0::wind_rate = 0.5f; // TODO
|
||||
const f32 daShip_HIO_c0::ef_dis_speed = 2.0f;
|
||||
const f32 daShip_HIO_c0::ef_speed_rate = 0.7f;
|
||||
const f32 daShip_HIO_c0::ef_front_x = -80.0f;
|
||||
@@ -52,18 +53,18 @@ const f32 daShip_HIO_c0::ef_back_x = -40.0f;
|
||||
const f32 daShip_HIO_c0::ef_back_y = -100.0f;
|
||||
const f32 daShip_HIO_c0::ef_back_z = -350.0f;
|
||||
const f32 daShip_HIO_c0::ef_sp_max_speed = 30.0f;
|
||||
const f32 daShip_HIO_c0::ef_pitch = 1.0f;
|
||||
const f32 daShip_HIO_c0::ef_pitch = 1.0f; // TODO
|
||||
const f32 daShip_HIO_c0::ef_ind_scroll = -0.04f;
|
||||
const f32 daShip_HIO_c0::ef_ind_scale = 4.0f;
|
||||
const f32 daShip_HIO_c0::cannon_speed = 110.0f;
|
||||
const f32 daShip_HIO_c0::cannon_gravity = -2.5f;
|
||||
const f32 daShip_HIO_c0::whirl_init_speed = 10.0f;
|
||||
const f32 daShip_HIO_c0::whirl_inc_speed = 30.0f;
|
||||
const f32 daShip_HIO_c0::whirl_init_speed = 10.0f; // TODO
|
||||
const f32 daShip_HIO_c0::whirl_inc_speed = 30.0f; // TODO
|
||||
const f32 daShip_HIO_c0::whirl_distance = 4000.0f;
|
||||
const f32 daShip_HIO_c0::tornado_init_speed = 30.0f;
|
||||
const f32 daShip_HIO_c0::tornado_inc_speed = 40.0f;
|
||||
const f32 daShip_HIO_c0::tornado_init_speed = 30.0f; // TODO
|
||||
const f32 daShip_HIO_c0::tornado_inc_speed = 40.0f; // TODO
|
||||
const f32 daShip_HIO_c0::tornado_distance = 6000.0f;
|
||||
const f32 daShip_HIO_c0::tornado_pull_speed = 5.0f;
|
||||
const f32 daShip_HIO_c0::tornado_pull_speed = 5.0f; // TODO
|
||||
const f32 daShip_HIO_c0::throw_start_speedF = 150.0f;
|
||||
const f32 daShip_HIO_c0::throw_start_speed_y = 50.0f;
|
||||
|
||||
@@ -1353,7 +1354,7 @@ void daShip_c::setSelfMove(int param_1) {
|
||||
else {
|
||||
sVar2 = 0;
|
||||
}
|
||||
cLib_addCalcAngleS(&m0366, sVar2, 4, 700, 0x100);
|
||||
cLib_addCalcAngleS(&m0366, sVar2, 4, l_HIO.tiller_speed, 0x100);
|
||||
setMoveAngle(m0366);
|
||||
if (!checkStateFlg(daSFLG_FLY_e)) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) || dComIfGp_event_runCheck() || daPy_getPlayerLinkActorClass()->checkNoControll()) {
|
||||
@@ -1579,7 +1580,7 @@ BOOL daShip_c::procSteerMove() {
|
||||
if (checkNextMode(MODE_STEER_MOVE_e)) {
|
||||
return TRUE;
|
||||
}
|
||||
cLib_addCalcAngleS(&m0366, mStickMVal * 8192.0f * -cM_ssin(mStickMAng), 4, 700, 0x100);
|
||||
cLib_addCalcAngleS(&m0366, mStickMVal * 8192.0f * -cM_ssin(mStickMAng), 4, l_HIO.tiller_speed, 0x100);
|
||||
if (!checkStateFlg(daSFLG_FLY_e)) {
|
||||
setMoveAngle(m0366);
|
||||
}
|
||||
@@ -2048,7 +2049,7 @@ BOOL daShip_c::procToolDemo() {
|
||||
else {
|
||||
angleDiff = 0;
|
||||
}
|
||||
cLib_addCalcAngleS(&m0366, angleDiff, 4, 700, 0x100);
|
||||
cLib_addCalcAngleS(&m0366, angleDiff, 4, l_HIO.tiller_speed, 0x100);
|
||||
setControllAngle(getAimControllAngle(prevShapeAngleY));
|
||||
}
|
||||
}
|
||||
@@ -2250,7 +2251,7 @@ BOOL daShip_c::procZevDemo() {
|
||||
sVar5 = 0;
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&m0366, sVar5, 4, 700, 0x100);
|
||||
cLib_addCalcAngleS(&m0366, sVar5, 4, l_HIO.tiller_speed, 0x100);
|
||||
setControllAngle(getAimControllAngle(sVar15));
|
||||
}
|
||||
else {
|
||||
@@ -2313,20 +2314,20 @@ BOOL daShip_c::procZevDemo() {
|
||||
}
|
||||
}
|
||||
else if (m0351 == DEMO_THROW_e) {
|
||||
speedF = 150.0f;
|
||||
speedF = l_HIO.throw_start_speedF;
|
||||
speedP = dComIfGp_evmng_getMyFloatP(mEvtStaffId, "gravity");
|
||||
if (speedP) {
|
||||
gravity = *speedP;
|
||||
}
|
||||
|
||||
speed.y = 50.0f;
|
||||
speed.y = l_HIO.throw_start_speed_y;
|
||||
onStateFlg(daSFLG_FLY_e);
|
||||
|
||||
if (angleP) {
|
||||
current.angle.y = (s16)*angleP;
|
||||
}
|
||||
|
||||
shape_angle.y += 4500;
|
||||
shape_angle.y += l_HIO.throw_start_angle_speed;
|
||||
dComIfGp_evmng_cutEnd(mEvtStaffId);
|
||||
}
|
||||
else if (m0351 == DEMO_HWARP_UP_e) {
|
||||
@@ -2866,7 +2867,7 @@ BOOL daShip_c::procStartModeThrow_init() {
|
||||
if (m0392 != SHIP_BCK_FN_MAST_OFF2) {
|
||||
setPartOffAnime();
|
||||
}
|
||||
m03A6 = 3600;
|
||||
m03A6 = l_HIO.throw_return_angle_speed;
|
||||
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
camera->mCamera.Stop();
|
||||
cXyz local_38(current.pos.x + cM_scos(current.angle.y) * 300.0f,
|
||||
@@ -2992,19 +2993,19 @@ void daShip_c::setEffectData(float param_1, short param_2) {
|
||||
}
|
||||
}
|
||||
|
||||
mTrack.setIndirectTexData(-0.04f, 4.0f);
|
||||
mTrack.setIndirectTexData(l_HIO.ef_ind_scroll, l_HIO.ef_ind_scale);
|
||||
mTrack.setSpeed(mFwdVel);
|
||||
|
||||
if (mFwdVel >= 0.0f) {
|
||||
mWaveR.setSpeed(0.7f);
|
||||
mWaveL.setSpeed(0.7f);
|
||||
mWaveR.setSpeed(l_HIO.ef_speed_rate);
|
||||
mWaveL.setSpeed(l_HIO.ef_speed_rate);
|
||||
}
|
||||
else {
|
||||
mWaveR.setSpeed(-0.7f);
|
||||
mWaveL.setSpeed(-0.7f);
|
||||
mWaveR.setSpeed(-l_HIO.ef_speed_rate);
|
||||
mWaveL.setSpeed(-l_HIO.ef_speed_rate);
|
||||
}
|
||||
|
||||
fVar1 = (s16)(shape_angle.z - param_2) / 16384.0f;
|
||||
fVar1 = (s16)(shape_angle.z - param_2) / (f32)0x4000;
|
||||
|
||||
if (fVar1 > 0.3f) {
|
||||
fVar1 = 0.3f;
|
||||
@@ -3017,21 +3018,21 @@ void daShip_c::setEffectData(float param_1, short param_2) {
|
||||
mWaveL.setPitch(1.0f - fVar1);
|
||||
|
||||
mSplash.setSpeed(mFwdVel);
|
||||
mSplash.setMaxSpeed(30.0f);
|
||||
mSplash.setMaxSpeed(l_HIO.ef_sp_max_speed);
|
||||
|
||||
cXyz anchorPos1;
|
||||
cXyz anchorPos2;
|
||||
|
||||
anchorPos1.set(-80.0f, -50.0f, -150.0f);
|
||||
anchorPos2.set(-40.0f, -100.0f, -350.0f);
|
||||
anchorPos1.set(l_HIO.ef_front_x, l_HIO.ef_front_y, l_HIO.ef_front_z);
|
||||
anchorPos2.set(l_HIO.ef_back_x, l_HIO.ef_back_y, l_HIO.ef_back_z);
|
||||
mWaveR.setAnchor(&anchorPos1, &anchorPos2);
|
||||
|
||||
anchorPos1.x *= -1.0f;
|
||||
anchorPos2.x *= -1.0f;
|
||||
mWaveL.setAnchor(&anchorPos1, &anchorPos2);
|
||||
|
||||
mWaveL.setMaxDisSpeed(2.0f);
|
||||
mWaveR.setMaxDisSpeed(2.0f);
|
||||
mWaveL.setMaxDisSpeed(l_HIO.ef_dis_speed);
|
||||
mWaveR.setMaxDisSpeed(l_HIO.ef_dis_speed);
|
||||
|
||||
mWaveL.setMaxSpeed(40.0f);
|
||||
mWaveR.setMaxSpeed(40.0f);
|
||||
@@ -3387,7 +3388,7 @@ void daShip_c::setTornadoActor() {
|
||||
m040C = cM_atan2f(local_20.x, local_20.z);
|
||||
|
||||
dCam_getBody()->SetTypeForce("Tornado", mTornadoActor);
|
||||
m0404 = (6000.0f - m0400) * 0.0004f;
|
||||
m0404 = (l_HIO.tornado_distance - m0400) * 0.0004f;
|
||||
if (m0404 < 0.0f) {
|
||||
m0404 = 0.0f;
|
||||
}
|
||||
@@ -3416,7 +3417,7 @@ void daShip_c::setWhirlActor() {
|
||||
m0400 = local_20.absXZ();
|
||||
m040C = cM_atan2f(local_20.x, local_20.z);
|
||||
dCam_getBody()->SetTypeForce("Tornado", mWhirlActor);
|
||||
m0404 = (4000.0f - m0400) * 0.00028571428f;
|
||||
m0404 = (l_HIO.whirl_distance - m0400) * (1.0f / 3500.0f);
|
||||
if (m0404 < 0.0f) {
|
||||
m0404 = 0.0f;
|
||||
}
|
||||
@@ -4000,12 +4001,12 @@ BOOL daShip_c::execute() {
|
||||
if (bomb) {
|
||||
dCam_getBody()->ForceLockOn(fpcM_GetID(bomb));
|
||||
|
||||
bomb->setNoGravityTime(8);
|
||||
bomb->setNoGravityTime(l_HIO.cannon_no_gravity_timer);
|
||||
|
||||
bomb->speedF = cM_scos(sp1C.x) * 110.0f;
|
||||
bomb->speed.y = -(cM_ssin(sp1C.x) * 110.0f);
|
||||
bomb->speedF = cM_scos(sp1C.x) * l_HIO.cannon_speed;
|
||||
bomb->speed.y = -(cM_ssin(sp1C.x) * l_HIO.cannon_speed);
|
||||
|
||||
bomb->gravity = -2.5f;
|
||||
bomb->gravity = l_HIO.cannon_gravity;
|
||||
|
||||
seStart(JA_SE_LK_SHIP_CANNON_FIRE, &m1038);
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ cPhs_State daSwTact_c::_create() {
|
||||
result = dComIfG_resLoad(&mPhs, m_arcname);
|
||||
|
||||
if (result == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x3000)) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, m_heapsize)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user