Files
tww/src/d/d_a_bomb_static.cpp
T
Kit 6c3bb08b77 Documentation, field naming throughout d_a_bomb_static.cpp (#597)
* change field 0x6F2 of daBomb_c to mBombFire

* add comments to functions involving mBombTimer, rename field 0x738 to mBombTimer

* fixes suggested by crain-32
2024-02-07 22:10:43 -05:00

191 lines
5.0 KiB
C++

/**
* d_a_bomb_static.cpp
* Bomb - Static
*/
#include "d/actor/d_a_bomb.h"
#include "d/actor/d_a_bomb2.h"
#include "JSystem/JUtility/JUTAssert.h"
#define L_daBomb_Version 1
/* 80067FA0-80067FD0 .text getBombRestTime__8daBomb_cFv */
s16 daBomb_c::getBombRestTime() {
_prm_chk_version();
return mRestTime;
}
/* 80067FD0-80068000 .text getBombCheck_Flag__8daBomb_cFv */
s16 daBomb_c::getBombCheck_Flag() {
_prm_chk_version();
return field_0x6F1;
}
/* 80068000-80068034 .text setBombCheck_Flag__8daBomb_cFv */
void daBomb_c::setBombCheck_Flag() {
_prm_chk_version();
field_0x6F1 = true;
}
/* 80068034-80068068 .text setBombFire_ON__8daBomb_cFv */
void daBomb_c::setBombFire_ON() {
_prm_chk_version();
mBombFire = true;
}
/* 80068068-800680CC .text setBombNoHit__8daBomb_cFv */
void daBomb_c::setBombNoHit() {
_prm_chk_version();
mSph.OffTgSPrmBit(TG_SPRM_SET);
mSph.OffCoSPrmBit(CO_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
mSph.ClrAtSet();
field_0x6F3 = true;
}
/* 800680CC-80068104 .text setBombOffCoSet__8daBomb_cFv */
void daBomb_c::setBombOffCoSet() {
_prm_chk_version();
mSph.OffCoSPrmBit(CO_SPRM_SET);
}
/* 80068104-8006813C .text setBombOnCoSet__8daBomb_cFv */
void daBomb_c::setBombOnCoSet() {
_prm_chk_version();
mSph.OnCoSPrmBit(CO_SPRM_SET);
}
/* 8006813C-800681CC .text setBombNoEff__8daBomb_cFv */
void daBomb_c::setBombNoEff() {
_prm_chk_version();
if(mSmoke.mpEmitter) {
mSmoke.mpEmitter->mpEmitterCallBack = 0;
mSmoke.mpEmitter->becomeInvalidEmitter();
}
mSmoke.mpEmitter = 0;
if(mSparks.mpEmitter) {
mSparks.mpEmitter->mpEmitterCallBack = 0;
mSparks.mpEmitter->becomeInvalidEmitter();
}
mSparks.mpEmitter = 0;
}
/* 800681CC-80068208 .text setBombRestTime__8daBomb_cFs */
void daBomb_c::setBombRestTime(s16 time) {
_prm_chk_version();
mRestTime = time;
}
/* 80068208-80068244 .text setNoGravityTime__8daBomb_cFs */
void daBomb_c::setNoGravityTime(s16 time) {
_prm_chk_version();
mNoGravityTime = time;
}
/* 80068244-80068274 .text prm_make__8daBomb_cFQ28daBomb_c7State_ebb */
int daBomb_c::prm_make(daBomb_c::State_e state, bool param_1, bool param_2) {
return (((param_2 ? 1 : 0) << 17) | (state | ((param_1 ? 1 : 0) << 16))) | 0x80000000;
}
/* 80068274-800682C0 .text chk_state__8daBomb_cCFQ28daBomb_c7State_e */
bool daBomb_c::chk_state(daBomb_c::State_e state) const {
_prm_chk_version();
return state == prm_get_state();
}
/* 800682C0-800682F0 .text change_state__8daBomb_cFQ28daBomb_c7State_e */
void daBomb_c::change_state(daBomb_c::State_e new_state) {
mBase.mParameters = (mBase.mParameters & ~(((1 << PRM_STATE_W) - 1) << PRM_STATE_S)) | (new_state << PRM_STATE_S); // & 0xFF000000
_prm_chk_version();
}
/* 800682F0-8006832C .text prm_get_state__8daBomb_cCFv */
int daBomb_c::prm_get_state() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_STATE_W, PRM_STATE_S);
}
/* 8006832C-80068340 .text get_explode_instant__8daBomb_cCFv */
bool daBomb_c::get_explode_instant() const {
return field_0x784 == true;
}
/* 80068340-80068388 .text prm_get_cheapEff__8daBomb_cCFv */
bool daBomb_c::prm_get_cheapEff() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_CHEAP_EFF_W, PRM_CHEAP_EFF_S);
}
/* 80068388-800683D0 .text prm_get_angXZero__8daBomb_cCFv */
bool daBomb_c::prm_get_angXZero() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_ANGXZERO_W, PRM_ANGXZERO_S);
}
/* 800683D0-800683F8 .text prm_get_version__8daBomb_cCFv */
int daBomb_c::prm_get_version() const {
return daObj::PrmAbstract(this, PRM_VERSION_W, PRM_VERSION_S);
}
/* 800683F8-80068450 .text _prm_chk_version__8daBomb_cCFv */
void daBomb_c::_prm_chk_version() const {
int ver = prm_get_version();
JUT_ASSERT(0xCE, ver == L_daBomb_Version);
}
/* 80068450-80068488 .text remove_fuse_effect__Q27daBomb25Act_cFv */
void daBomb2::Act_c::remove_fuse_effect() {
mSmoke.deleteCallBack();
mSparks.deleteCallBack();
}
/* 80068488-80068490 .text set_time__Q27daBomb25Act_cFi */
void daBomb2::Act_c::set_time(int time) {
mBombTimer = time;
}
/* 80068490-80068498 .text get_time__Q27daBomb25Act_cCFv */
int daBomb2::Act_c::get_time() const {
return mBombTimer;
}
/* 80068498-800684A0 .text chk_eat__Q27daBomb25Act_cCFv */
bool daBomb2::Act_c::chk_eat() const {
return field_0x745;
}
/* 800684A0-800684AC .text set_eat__Q27daBomb25Act_cFv */
void daBomb2::Act_c::set_eat() {
field_0x745 = true;
}
/* 800684AC-800684E0 .text set_no_hit__Q27daBomb25Act_cFv */
void daBomb2::Act_c::set_no_hit() {
mSph.OffTgSPrmBit(TG_SPRM_SET);
mSph.OffCoSPrmBit(CO_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
mSph.ClrAtSet();
}
/* 800684E0-800684F4 .text chk_explode__Q27daBomb25Act_cFv */
bool daBomb2::Act_c::chk_explode() {
return mState == 2;
}