Files
tww/src/d/d_a_bomb_static.cpp
T
2023-11-21 21:47:45 -05:00

165 lines
3.3 KiB
C++

//
// Generated by dtk
// Translation Unit: d_a_bomb_static.cpp
//
#include "d/actor/d_a_bomb.h"
#include "d/actor/d_a_bomb2.h"
#include "JSystem/JUtility/JUTAssert.h"
#define L_daBomb_Version 1
s16 daBomb_c::getBombRestTime() {
_prm_chk_version();
return mRestTime;
}
s16 daBomb_c::getBombCheck_Flag() {
_prm_chk_version();
return field_0x6F1;
}
void daBomb_c::setBombCheck_Flag() {
_prm_chk_version();
field_0x6F1 = true;
}
void daBomb_c::setBombFire_ON() {
_prm_chk_version();
field_0x6F2 = true;
}
void daBomb_c::setBombNoHit() {
_prm_chk_version();
mSph.OffTgSPrmBit(TG_SPRM_SET);
mSph.OffCoSPrmBit(CO_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
field_0x6F3 = true;
}
void daBomb_c::setBombOffCoSet() {
_prm_chk_version();
mSph.OffCoSPrmBit(CO_SPRM_SET);
}
void daBomb_c::setBombOnCoSet() {
_prm_chk_version();
mSph.OnCoSPrmBit(CO_SPRM_SET);
}
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;
}
void daBomb_c::setBombRestTime(s16 time) {
_prm_chk_version();
mRestTime = time;
}
void daBomb_c::setNoGravityTime(s16 time) {
_prm_chk_version();
mNoGravityTime = time;
}
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;
}
bool daBomb_c::chk_state(daBomb_c::State_e state) const {
_prm_chk_version();
return state == prm_get_state();
}
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();
}
int daBomb_c::prm_get_state() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_STATE_W, PRM_STATE_S);
}
bool daBomb_c::get_explode_instant() const {
return field_0x784 == true;
}
bool daBomb_c::prm_get_cheapEff() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_CHEAP_EFF_W, PRM_CHEAP_EFF_S);
}
bool daBomb_c::prm_get_angXZero() const {
_prm_chk_version();
return daObj::PrmAbstract(this, PRM_ANGXZERO_W, PRM_ANGXZERO_S);
}
int daBomb_c::prm_get_version() const {
return daObj::PrmAbstract(this, PRM_VERSION_W, PRM_VERSION_S);
}
void daBomb_c::_prm_chk_version() const {
int ver = prm_get_version();
JUT_ASSERT(0xCE, ver == L_daBomb_Version);
}
void daBomb2::Act_c::remove_fuse_effect() {
mSmoke.deleteCallBack();
mSparks.deleteCallBack();
}
void daBomb2::Act_c::set_time(int time) {
field_0x738 = time;
}
int daBomb2::Act_c::get_time() const {
return field_0x738;
}
bool daBomb2::Act_c::chk_eat() const {
return field_0x745;
}
void daBomb2::Act_c::set_eat() {
field_0x745 = true;
}
void daBomb2::Act_c::set_no_hit() {
mSph.OffTgSPrmBit(TG_SPRM_SET);
mSph.OffCoSPrmBit(CO_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
mSph.OffAtSPrmBit(AT_SPRM_SET);
}
bool daBomb2::Act_c::chk_explode() {
return field_0x694 == 2;
}