mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-25 01:12:09 -04:00
tabs -> spaces
This commit is contained in:
@@ -11,24 +11,24 @@ namespace binary {
|
||||
|
||||
/* 802BFA48-802BFAAC .text parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit */
|
||||
const void* parseVariableUInt_16_32_following(const void* buffer, u32* param_1, u32* param_2, TEBit* bit) {
|
||||
JGadget::binary::TEBit temp;
|
||||
if (bit == NULL) {
|
||||
bit = &temp;
|
||||
}
|
||||
u32 uVar1 = *(u16*)buffer;
|
||||
if ((uVar1 & 0x8000) == 0) {
|
||||
bit->value = 0x10;
|
||||
*param_1 = uVar1;
|
||||
*param_2 = *(u16*)((u8*)buffer + 2);
|
||||
return (u8*)buffer + 4;
|
||||
}
|
||||
bit->value = 0x20;
|
||||
uVar1 <<= 16;
|
||||
uVar1 &= 0x7fff0000;
|
||||
uVar1 |= *(u16*)((u8*)buffer + 2);
|
||||
*param_1 = uVar1;
|
||||
*param_2 = *(u32*)((u8*)buffer + 4);
|
||||
return (u8*)buffer + 8;
|
||||
JGadget::binary::TEBit temp;
|
||||
if (bit == NULL) {
|
||||
bit = &temp;
|
||||
}
|
||||
u32 uVar1 = *(u16*)buffer;
|
||||
if ((uVar1 & 0x8000) == 0) {
|
||||
bit->value = 0x10;
|
||||
*param_1 = uVar1;
|
||||
*param_2 = *(u16*)((u8*)buffer + 2);
|
||||
return (u8*)buffer + 4;
|
||||
}
|
||||
bit->value = 0x20;
|
||||
uVar1 <<= 16;
|
||||
uVar1 &= 0x7fff0000;
|
||||
uVar1 |= *(u16*)((u8*)buffer + 2);
|
||||
*param_1 = uVar1;
|
||||
*param_2 = *(u32*)((u8*)buffer + 4);
|
||||
return (u8*)buffer + 8;
|
||||
}
|
||||
|
||||
/* 802BFAAC-802BFAF4 .text __dt__Q37JGadget6binary19TParse_header_blockFv */
|
||||
@@ -36,33 +36,33 @@ TParse_header_block::~TParse_header_block() {}
|
||||
|
||||
/* 802BFAF4-802BFC00 .text parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl */
|
||||
bool TParse_header_block::parse_next(const void** ptrLocation, u32 idx) {
|
||||
u32 headerEnd, blockEnd;
|
||||
u32 headerEnd, blockEnd;
|
||||
|
||||
if ((ptrLocation == NULL) || (*ptrLocation == NULL)) {
|
||||
return false;
|
||||
}
|
||||
bool check, checkLastBlock;
|
||||
checkLastBlock = check = false;
|
||||
if ((ptrLocation == NULL) || (*ptrLocation == NULL)) {
|
||||
return false;
|
||||
}
|
||||
bool check, checkLastBlock;
|
||||
checkLastBlock = check = false;
|
||||
|
||||
check = checkNext(ptrLocation, &headerEnd, idx);
|
||||
check = checkNext(ptrLocation, &headerEnd, idx);
|
||||
|
||||
checkLastBlock = check;
|
||||
if (!(idx & 1) && (check == false)) {
|
||||
return check;
|
||||
}
|
||||
checkLastBlock = check;
|
||||
if (!(idx & 1) && (check == false)) {
|
||||
return check;
|
||||
}
|
||||
|
||||
while (headerEnd > 0) {
|
||||
check = false;
|
||||
if (parseBlock_next(ptrLocation, &blockEnd, idx) && checkLastBlock) {
|
||||
check = true;
|
||||
}
|
||||
checkLastBlock = check;
|
||||
if (((idx & 2) == 0) && (check == false)) {
|
||||
return check;
|
||||
}
|
||||
headerEnd--;
|
||||
}
|
||||
return checkLastBlock;
|
||||
while (headerEnd > 0) {
|
||||
check = false;
|
||||
if (parseBlock_next(ptrLocation, &blockEnd, idx) && checkLastBlock) {
|
||||
check = true;
|
||||
}
|
||||
checkLastBlock = check;
|
||||
if (((idx & 2) == 0) && (check == false)) {
|
||||
return check;
|
||||
}
|
||||
headerEnd--;
|
||||
}
|
||||
return checkLastBlock;
|
||||
}
|
||||
|
||||
} // namespace binary
|
||||
|
||||
@@ -15,11 +15,11 @@ u32 vector::extend_default(u32, u32 param_2, u32) {
|
||||
|
||||
/* 802BFF1C-802BFF48 .text __ct__Q27JGadget20TVector_pointer_voidFRCQ27JGadget14TAllocator<Pv> */
|
||||
TVector_pointer_void::TVector_pointer_void(const TAllocator<void*>& allocator) {
|
||||
_00 = allocator._00;
|
||||
mBegin = NULL;
|
||||
mEnd = mBegin;
|
||||
_0C = NULL;
|
||||
mExtend = vector::extend_default;
|
||||
_00 = allocator._00;
|
||||
mBegin = NULL;
|
||||
mEnd = mBegin;
|
||||
_0C = NULL;
|
||||
mExtend = vector::extend_default;
|
||||
}
|
||||
|
||||
/* 802BFF48-802BFFF0 .text __dt__Q27JGadget20TVector_pointer_voidFv */
|
||||
|
||||
@@ -39,47 +39,47 @@ void JMessage::TControl::getMessageData(u16, u16) const {
|
||||
void JMessage::TControl::reset() {
|
||||
reset_();
|
||||
|
||||
if (mBaseProcSeq) {
|
||||
mBaseProcSeq->reset_(NULL);
|
||||
}
|
||||
if (mBaseProcSeq) {
|
||||
mBaseProcSeq->reset_(NULL);
|
||||
}
|
||||
|
||||
if (mBaseProcRender) {
|
||||
mBaseProcRender->reset_(NULL);
|
||||
}
|
||||
if (mBaseProcRender) {
|
||||
mBaseProcRender->reset_(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8029EB1C-8029EC00 .text update__Q28JMessage8TControlFv */
|
||||
bool JMessage::TControl::update() {
|
||||
/* Nonmatching */
|
||||
if (!isReady_update_()) {
|
||||
return false;
|
||||
}
|
||||
if (!isReady_update_()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mCurrentText == NULL) {
|
||||
mCurrentText = mMessageBegin;
|
||||
mBaseProcSeq->setBegin(mResourceCache, mMessageBegin);
|
||||
}
|
||||
|
||||
mCurrentText = mBaseProcSeq->process(NULL);
|
||||
mCurrentText = mBaseProcSeq->process(NULL);
|
||||
|
||||
if (!mCurrentText) {
|
||||
mMessageBegin = NULL;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
if (!mCurrentText) {
|
||||
mMessageBegin = NULL;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8029EC00-8029ECCC .text render__Q28JMessage8TControlFv */
|
||||
void JMessage::TControl::render() {
|
||||
/* Nonmatching */
|
||||
if (!isReady_render_()) {
|
||||
return;
|
||||
}
|
||||
if (!isReady_render_()) {
|
||||
return;
|
||||
}
|
||||
|
||||
mBaseProcRender->setBegin_messageEntryText(mResourceCache, mEntry, _20);
|
||||
mBaseProcRender->setBegin_messageEntryText(mResourceCache, mEntry, _20);
|
||||
mBaseProcRender->mCurrent = _20;
|
||||
mBaseProcRender->mStack = mRenderStack;
|
||||
mBaseProcRender->process(mCurrentText);
|
||||
mBaseProcRender->mStack = mRenderStack;
|
||||
mBaseProcRender->process(mCurrentText);
|
||||
}
|
||||
|
||||
/* 8029ECCC-8029ECD4 .text do_word__Q28JMessage8TControlFUl */
|
||||
|
||||
@@ -238,23 +238,23 @@ bool TSequenceProcessor::do_tag_(u32, const void*, u32) {
|
||||
/* 8029F9D4-8029FA2C .text do_systemTagCode___Q28JMessage18TSequenceProcessorFUsPCvUl */
|
||||
void TSequenceProcessor::do_systemTagCode_(u16 p1, const void* p2, u32 p3) {
|
||||
/* Nonmatching */
|
||||
switch (p1) {
|
||||
case 6:
|
||||
_3C = 3;
|
||||
_40 = &process_onJump_;
|
||||
_44 = *(u32*)p2;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
default:
|
||||
TProcessor::do_systemTagCode_(p1, p2, p3);
|
||||
break;
|
||||
}
|
||||
switch (p1) {
|
||||
case 6:
|
||||
_3C = 3;
|
||||
_40 = &process_onJump_;
|
||||
_44 = *(u32*)p2;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
default:
|
||||
TProcessor::do_systemTagCode_(p1, p2, p3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8029FA2C-8029FA5C .text process_jump_limited___Q28JMessage18TSequenceProcessorFPQ28JMessage18TSequenceProcessor */
|
||||
|
||||
@@ -8,14 +8,13 @@
|
||||
|
||||
/* 80274A90-80274AF8 .text getData__Q47JStudio3fvb4data17TParse_TParagraphCFPQ57JStudio3fvb4data17TParse_TParagraph5TData */
|
||||
void JStudio::fvb::data::TParse_TParagraph::getData(JStudio::fvb::data::TParse_TParagraph::TData* data) const {
|
||||
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
|
||||
u32 t = (u32)data->u32Size;
|
||||
if (!t) {
|
||||
data->pContent = NULL;
|
||||
data->next = parse;
|
||||
} else {
|
||||
data->pContent = parse;
|
||||
data->next = parse + ((t + 3) >> 1 & ~1);
|
||||
}
|
||||
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
|
||||
u32 t = (u32)data->u32Size;
|
||||
if (!t) {
|
||||
data->pContent = NULL;
|
||||
data->next = parse;
|
||||
} else {
|
||||
data->pContent = parse;
|
||||
data->next = parse + ((t + 3) >> 1 & ~1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,32 +49,32 @@ void TParse_TParagraph::getData(TParse_TParagraph::TData* pData) const {
|
||||
void TParse_TParagraph_data::getData(TParse_TParagraph_data::TData* pData) const {
|
||||
u8* set2;
|
||||
|
||||
int dSize = pData->dataSize = 0;
|
||||
pData->_8 = 0;
|
||||
pData->fileCount = NULL;
|
||||
pData->_10 = NULL;
|
||||
u8* filedata = (u8*)getRaw();
|
||||
if (filedata == NULL)
|
||||
return;
|
||||
u8 set = *filedata;
|
||||
pData->status = set & ~0x8;
|
||||
if (!set)
|
||||
return;
|
||||
int dSize = pData->dataSize = 0;
|
||||
pData->_8 = 0;
|
||||
pData->fileCount = NULL;
|
||||
pData->_10 = NULL;
|
||||
u8* filedata = (u8*)getRaw();
|
||||
if (filedata == NULL)
|
||||
return;
|
||||
u8 set = *filedata;
|
||||
pData->status = set & ~0x8;
|
||||
if (!set)
|
||||
return;
|
||||
int is8;
|
||||
int set3 = 1;
|
||||
is8 = set & 8;
|
||||
int set3 = 1;
|
||||
is8 = set & 8;
|
||||
// Probably fake match
|
||||
if (set2 = (filedata + 1), is8) {
|
||||
set3 = *set2++;
|
||||
}
|
||||
pData->_8 = set3;
|
||||
pData->fileCount = set2;
|
||||
if (set2 = (filedata + 1), is8) {
|
||||
set3 = *set2++;
|
||||
}
|
||||
pData->_8 = set3;
|
||||
pData->fileCount = set2;
|
||||
|
||||
if (!(set & 7))
|
||||
return;
|
||||
dSize = (gauDataSize_TEParagraph_data)[set &= 7];
|
||||
pData->dataSize = dSize;
|
||||
pData->_10 = (u8*)set2 + (dSize * set3);
|
||||
if (!(set & 7))
|
||||
return;
|
||||
dSize = (gauDataSize_TEParagraph_data)[set &= 7];
|
||||
pData->dataSize = dSize;
|
||||
pData->_10 = (u8*)set2 + (dSize * set3);
|
||||
}
|
||||
|
||||
} // namespace data
|
||||
|
||||
@@ -14,25 +14,25 @@ namespace {
|
||||
// TODO: supposed to use JStudio::TObject::createFromAdaptor instead of this somehow
|
||||
inline JStudio::TObject_sound* sound_creator(const JStudio::stb::data::TParse_TBlock_object& data, JStudio_JAudio::TAdaptor_sound* adaptor)
|
||||
{
|
||||
JStudio::TObject_sound* object = new JStudio::TObject_sound(data, adaptor);
|
||||
JStudio::TObject_sound* object = new JStudio::TObject_sound(data, adaptor);
|
||||
|
||||
if (!object) {
|
||||
return NULL;
|
||||
}
|
||||
if (object->mpAdaptor) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
return object;
|
||||
if (!object) {
|
||||
return NULL;
|
||||
}
|
||||
if (object->mpAdaptor) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
/* 80278B98-80278C4C .text createObject_SOUND_JAI___Q214JStudio_JAudio21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectP8JAIBasic */
|
||||
JStudio::TObject* createObject_SOUND_JAI_(const JStudio::stb::data::TParse_TBlock_object& parseBlock, JAIBasic* sound) {
|
||||
TAdaptor_sound* adaptor = new TAdaptor_sound(sound);
|
||||
if (!adaptor) {
|
||||
return NULL;
|
||||
}
|
||||
TAdaptor_sound* adaptor = new TAdaptor_sound(sound);
|
||||
if (!adaptor) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return sound_creator(parseBlock, adaptor);
|
||||
return sound_creator(parseBlock, adaptor);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -42,17 +42,17 @@ TCreateObject::~TCreateObject() {}
|
||||
|
||||
/* 80278CAC-80278D20 .text create__Q214JStudio_JAudio13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
|
||||
bool TCreateObject::create(JStudio::TObject** object, const JStudio::stb::data::TParse_TBlock_object& data) {
|
||||
JStudioAudioCreateFunc createFunc;
|
||||
switch (data.get()->type) {
|
||||
case 'JSND':
|
||||
createFunc = createObject_SOUND_JAI_;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
JStudioAudioCreateFunc createFunc;
|
||||
switch (data.get()->type) {
|
||||
case 'JSND':
|
||||
createFunc = createObject_SOUND_JAI_;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
*object = createFunc(data, mSound);
|
||||
return true;
|
||||
*object = createFunc(data, mSound);
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace JStudio_JAudio
|
||||
} // namespace JStudio_JAudio
|
||||
|
||||
@@ -27,13 +27,13 @@ TAdaptor_sound::~TAdaptor_sound() {
|
||||
|
||||
/* 80278E38-80278F40 .text adaptor_do_prepare__Q214JStudio_JAudio14TAdaptor_soundFPCQ27JStudio7TObject */
|
||||
void TAdaptor_sound::adaptor_do_prepare(const JStudio::TObject* param_1) {
|
||||
static TSetVariableValue_immediate aoData[] = {
|
||||
TSetVariableValue_immediate(0, 0.0f),
|
||||
static TSetVariableValue_immediate aoData[] = {
|
||||
TSetVariableValue_immediate(0, 0.0f),
|
||||
TSetVariableValue_immediate(1, 0.0f),
|
||||
TSetVariableValue_immediate(2, 0.0f),
|
||||
TSetVariableValue_immediate(0xFFFFFFFF, NAN),
|
||||
};
|
||||
adaptor_setVariableValue_immediate(aoData);
|
||||
TSetVariableValue_immediate(0xFFFFFFFF, NAN),
|
||||
};
|
||||
adaptor_setVariableValue_immediate(aoData);
|
||||
pValue_[3].setOutput(&TAdaptor_sound::soVVOOn_BEGIN_FADE_IN_);
|
||||
pValue_[4].setOutput(&TAdaptor_sound::soVVOOn_END_FADE_OUT_);
|
||||
|
||||
|
||||
@@ -15,26 +15,26 @@ namespace {
|
||||
inline JStudio::TObject_message* message_creator(const JStudio::stb::data::TParse_TBlock_object& data,
|
||||
TAdaptor_message* adaptor)
|
||||
{
|
||||
JStudio::TObject_message* object = new JStudio::TObject_message(data, adaptor);
|
||||
JStudio::TObject_message* object = new JStudio::TObject_message(data, adaptor);
|
||||
|
||||
if (!object) {
|
||||
return NULL;
|
||||
}
|
||||
if (object->mpAdaptor) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
return object;
|
||||
if (!object) {
|
||||
return NULL;
|
||||
}
|
||||
if (object->mpAdaptor) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
/* 8027A3F4-8027A4A8 .text createObject_MESSAGE_JMS___Q216JStudio_JMessage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ28JMessage8TControl */
|
||||
JStudio::TObject_message* createObject_MESSAGE_JMS_(const JStudio::stb::data::TParse_TBlock_object& data, JMessage::TControl* system)
|
||||
{
|
||||
TAdaptor_message* adaptor = new TAdaptor_message(system);
|
||||
if (!adaptor) {
|
||||
return NULL;
|
||||
}
|
||||
TAdaptor_message* adaptor = new TAdaptor_message(system);
|
||||
if (!adaptor) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return message_creator(data, adaptor);
|
||||
return message_creator(data, adaptor);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -44,23 +44,23 @@ TCreateObject_base::~TCreateObject_base() {}
|
||||
|
||||
/* 8027A508-8027A5AC .text create__Q216JStudio_JMessage18TCreateObject_baseFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
|
||||
bool TCreateObject_base::create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data) {
|
||||
JStudio::TObject_message* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JMessage::TControl*);
|
||||
switch (data.get()->type) {
|
||||
case 'JMSG':
|
||||
func = &createObject_MESSAGE_JMS_;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
JStudio::TObject_message* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JMessage::TControl*);
|
||||
switch (data.get()->type) {
|
||||
case 'JMSG':
|
||||
func = &createObject_MESSAGE_JMS_;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
JMessage::TControl* system = find(data);
|
||||
JMessage::TControl* system = find(data);
|
||||
|
||||
if (!system) {
|
||||
return false;
|
||||
}
|
||||
if (!system) {
|
||||
return false;
|
||||
}
|
||||
|
||||
*newObject = func(data, system);
|
||||
return true;
|
||||
*newObject = func(data, system);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027A5AC-8027A60C .text __dt__Q216JStudio_JMessage13TCreateObjectFv */
|
||||
|
||||
@@ -19,9 +19,9 @@ JStudio_JMessage::TAdaptor_message::~TAdaptor_message() {}
|
||||
/* 8027A6AC-8027A6EC .text adaptor_do_MESSAGE__Q216JStudio_JMessage16TAdaptor_messageFQ37JStudio4data15TEOperationDataPCvUl */
|
||||
void JStudio_JMessage::TAdaptor_message::adaptor_do_MESSAGE(JStudio::data::TEOperationData operation, const void* param_2, u32 param_3) {
|
||||
/* Nonmatching */
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x19:
|
||||
mControl->setMessageCode(*(u32*)param_2);
|
||||
break;
|
||||
}
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x19:
|
||||
mControl->setMessageCode(*(u32*)param_2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,28 +13,28 @@ namespace {
|
||||
// TODO: supposed to use JStudio::TObject::createFromAdaptor instead of this somehow
|
||||
static inline JStudio::TObject_particle* create(const JStudio::stb::data::TParse_TBlock_object& data, TAdaptor_particle* adaptor)
|
||||
{
|
||||
JStudio::TObject_particle* object = new JStudio::TObject_particle(data, adaptor);
|
||||
if (object == NULL) {
|
||||
// TODO: This should probably delete the adaptor in NONMATCHING builds, if the object couldn't get created.
|
||||
return NULL;
|
||||
} else {
|
||||
if (object->mpAdaptor != NULL) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
}
|
||||
return object;
|
||||
JStudio::TObject_particle* object = new JStudio::TObject_particle(data, adaptor);
|
||||
if (object == NULL) {
|
||||
// TODO: This should probably delete the adaptor in NONMATCHING builds, if the object couldn't get created.
|
||||
return NULL;
|
||||
} else {
|
||||
if (object->mpAdaptor != NULL) {
|
||||
object->mpAdaptor->adaptor_do_prepare(object);
|
||||
}
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
/* 802796E4-802797A0 .text createObject_PARTICLE_JPA___Q217JStudio_JParticle21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectP17JPAEmitterManagerPCQ26JStage7TSystem */
|
||||
JStudio::TObject_particle* createObject_PARTICLE_JPA_(const JStudio::stb::data::TParse_TBlock_object& data, JPAEmitterManager* manager,
|
||||
const JStage::TSystem* system)
|
||||
{
|
||||
TAdaptor_particle* adaptor = new TAdaptor_particle(manager, system);
|
||||
if (adaptor == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
JStudio::TObject_particle* object = create(data, adaptor);
|
||||
return object;
|
||||
TAdaptor_particle* adaptor = new TAdaptor_particle(manager, system);
|
||||
if (adaptor == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
JStudio::TObject_particle* object = create(data, adaptor);
|
||||
return object;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@@ -43,17 +43,17 @@ TCreateObject::~TCreateObject() {}
|
||||
|
||||
/* 80279800-80279878 .text create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
|
||||
bool TCreateObject::create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data) {
|
||||
JStudio::TObject_particle* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JPAEmitterManager*, const JStage::TSystem*);
|
||||
switch (data.get()->type) {
|
||||
case 'JPTC': {
|
||||
func = &createObject_PARTICLE_JPA_;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
*newObject = func(data, pJPAEmitterManager_, pJSGSystem_);
|
||||
return true;
|
||||
JStudio::TObject_particle* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JPAEmitterManager*, const JStage::TSystem*);
|
||||
switch (data.get()->type) {
|
||||
case 'JPTC': {
|
||||
func = &createObject_PARTICLE_JPA_;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
*newObject = func(data, pJPAEmitterManager_, pJSGSystem_);
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace JStudio_JParticle
|
||||
|
||||
@@ -28,25 +28,25 @@ TAdaptor_particle::TAdaptor_particle(JPAEmitterManager* emitterManager, const JS
|
||||
|
||||
/* 802799B0-80279A50 .text __dt__Q217JStudio_JParticle17TAdaptor_particleFv */
|
||||
TAdaptor_particle::~TAdaptor_particle() {
|
||||
if (mEmitter != NULL) {
|
||||
mEmitterManager->forceDeleteEmitter(mEmitter);
|
||||
}
|
||||
if (mEmitter != NULL) {
|
||||
mEmitterManager->forceDeleteEmitter(mEmitter);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80279A50-80279BD4 .text adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFPCQ27JStudio7TObject */
|
||||
void TAdaptor_particle::adaptor_do_prepare(const JStudio::TObject* param_1) {
|
||||
static TSetVariableValue_immediate aoData[18] = {
|
||||
TSetVariableValue_immediate(0, 0.0f), TSetVariableValue_immediate(1, 0.0f), TSetVariableValue_immediate(2, 0.0f),
|
||||
TSetVariableValue_immediate(3, 0.0f), TSetVariableValue_immediate(4, 0.0f), TSetVariableValue_immediate(5, 0.0f),
|
||||
TSetVariableValue_immediate(6, 1.0f), TSetVariableValue_immediate(7, 1.0f), TSetVariableValue_immediate(8, 1.0f),
|
||||
TSetVariableValue_immediate(9, 255.0f), TSetVariableValue_immediate(10, 255.0f), TSetVariableValue_immediate(11, 255.0f),
|
||||
TSetVariableValue_immediate(12, 255.0f), TSetVariableValue_immediate(13, 255.0f), TSetVariableValue_immediate(14, 255.0f),
|
||||
TSetVariableValue_immediate(15, 255.0f), TSetVariableValue_immediate(16, 255.0f), TSetVariableValue_immediate(0xFFFFFFFF, NAN)
|
||||
};
|
||||
adaptor_setVariableValue_immediate(aoData);
|
||||
static TSetVariableValue_immediate aoData[18] = {
|
||||
TSetVariableValue_immediate(0, 0.0f), TSetVariableValue_immediate(1, 0.0f), TSetVariableValue_immediate(2, 0.0f),
|
||||
TSetVariableValue_immediate(3, 0.0f), TSetVariableValue_immediate(4, 0.0f), TSetVariableValue_immediate(5, 0.0f),
|
||||
TSetVariableValue_immediate(6, 1.0f), TSetVariableValue_immediate(7, 1.0f), TSetVariableValue_immediate(8, 1.0f),
|
||||
TSetVariableValue_immediate(9, 255.0f), TSetVariableValue_immediate(10, 255.0f), TSetVariableValue_immediate(11, 255.0f),
|
||||
TSetVariableValue_immediate(12, 255.0f), TSetVariableValue_immediate(13, 255.0f), TSetVariableValue_immediate(14, 255.0f),
|
||||
TSetVariableValue_immediate(15, 255.0f), TSetVariableValue_immediate(16, 255.0f), TSetVariableValue_immediate(0xFFFFFFFF, NAN)
|
||||
};
|
||||
adaptor_setVariableValue_immediate(aoData);
|
||||
pValue_[18].setOutput(&TAdaptor_particle::soVVOOn_BEGIN_FADE_IN_);
|
||||
pValue_[19].setOutput(&TAdaptor_particle::soVVOOn_END_FADE_OUT_);
|
||||
mCallback.mObject = param_1;
|
||||
mCallback.mObject = param_1;
|
||||
}
|
||||
|
||||
TAdaptor_particle::TVVOOn_BEGIN_FADE_IN_ TAdaptor_particle::soVVOOn_BEGIN_FADE_IN_;
|
||||
@@ -57,40 +57,40 @@ void TAdaptor_particle::adaptor_do_end(const JStudio::TObject*) {}
|
||||
|
||||
/* 80279BD8-80279C2C .text adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFPCQ27JStudio7TObjectUl */
|
||||
void TAdaptor_particle::adaptor_do_update(const JStudio::TObject* param_1, u32 param_2) {
|
||||
if (_190 == 0) {
|
||||
return;
|
||||
}
|
||||
if (_194 >= _190) {
|
||||
return;
|
||||
}
|
||||
_194 += param_2;
|
||||
if (_194 < _190) {
|
||||
return;
|
||||
}
|
||||
switch (_18C) {
|
||||
case 2:
|
||||
if (_190 == 0) {
|
||||
return;
|
||||
}
|
||||
if (_194 >= _190) {
|
||||
return;
|
||||
}
|
||||
_194 += param_2;
|
||||
if (_194 < _190) {
|
||||
return;
|
||||
}
|
||||
switch (_18C) {
|
||||
case 2:
|
||||
break;
|
||||
default:
|
||||
_18C = 0;
|
||||
_18C = 0;
|
||||
break;
|
||||
}
|
||||
_190 = 0;
|
||||
_194 = 0;
|
||||
}
|
||||
_190 = 0;
|
||||
_194 = 0;
|
||||
}
|
||||
|
||||
/* 80279C2C-80279C40 .text adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
|
||||
void TAdaptor_particle::adaptor_do_PARTICLE(JStudio::data::TEOperationData operation, const void* r5, u32) {
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x19:
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x19:
|
||||
_188 = *(int*)r5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80279C40-80279CA4 .text adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
|
||||
void TAdaptor_particle::adaptor_do_PARENT(JStudio::data::TEOperationData operation, const void* param_2, u32) {
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x18:
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x18:
|
||||
if (mSystem != NULL) {
|
||||
_19C = (JStage::TObject*)mSystem->JSGFindObject((const char*)param_2, JStage::TOBJ_ACTOR_UNK);
|
||||
if (_19C == 0) {
|
||||
@@ -98,34 +98,34 @@ void TAdaptor_particle::adaptor_do_PARENT(JStudio::data::TEOperationData operati
|
||||
*(f32*)NULL = *(f32*)NULL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80279CA4-80279D24 .text adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
|
||||
void TAdaptor_particle::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData operation, const void* param_2, u32) {
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x18:
|
||||
if (_19C != NULL) {
|
||||
_1A0 = _19C->JSGFindNodeID((const char*)param_2);
|
||||
if (_1A0 == 0xFFFFFFFF) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case JStudio::data::UNK_0x19:
|
||||
_1A0 = *(u32*)param_2;
|
||||
break;
|
||||
}
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x18:
|
||||
if (_19C != NULL) {
|
||||
_1A0 = _19C->JSGFindNodeID((const char*)param_2);
|
||||
if (_1A0 == 0xFFFFFFFF) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case JStudio::data::UNK_0x19:
|
||||
_1A0 = *(u32*)param_2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80279D24-80279D40 .text adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
|
||||
void TAdaptor_particle::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData operation, const void* param_2, u32 param_3) {
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x2:
|
||||
_1A4 = *(u32*)param_2;
|
||||
break;
|
||||
}
|
||||
switch (operation) {
|
||||
case JStudio::data::UNK_0x2:
|
||||
_1A4 = *(u32*)param_2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80279D40-80279E2C .text __cl__Q317JStudio_JParticle17TAdaptor_particle21TVVOOn_BEGIN_FADE_IN_CFfPQ27JStudio8TAdaptor */
|
||||
@@ -140,24 +140,24 @@ void TAdaptor_particle::TVVOOn_END_FADE_OUT_::operator()(float, JStudio::TAdapto
|
||||
|
||||
/* 80279F08-8027A2B8 .text execute__Q317JStudio_JParticle17TAdaptor_particle13TJPACallback_FP14JPABaseEmitter */
|
||||
void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
|
||||
if (emitter->isEnableDeleteEmitter()) {
|
||||
mAdaptor->_18C = 0;
|
||||
mAdaptor->_190 = 0;
|
||||
mAdaptor->_194 = 0;
|
||||
mAdaptor->mEmitterManager->forceDeleteEmitter(emitter);
|
||||
mAdaptor->mEmitter = NULL;
|
||||
return;
|
||||
}
|
||||
if (emitter->isEnableDeleteEmitter()) {
|
||||
mAdaptor->_18C = 0;
|
||||
mAdaptor->_190 = 0;
|
||||
mAdaptor->_194 = 0;
|
||||
mAdaptor->mEmitterManager->forceDeleteEmitter(emitter);
|
||||
mAdaptor->mEmitter = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
f64 alpha = 1.0;
|
||||
f64 alpha = 1.0;
|
||||
f64 val1 = mAdaptor->_190; // u32 stored as f64
|
||||
switch (mAdaptor->_18C) {
|
||||
case 1:
|
||||
switch (mAdaptor->_18C) {
|
||||
case 1:
|
||||
if (mAdaptor->_190 != 0) {
|
||||
f64 val2 = mAdaptor->_194; // u32 stored as f64
|
||||
alpha = val2 / val1;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case 2:
|
||||
if (mAdaptor->_190 == 0) {
|
||||
alpha = 0.0;
|
||||
@@ -170,44 +170,44 @@ void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const JStudio::TControl* ctrl = static_cast<const JStudio::TControl*>(mObject->getControl()); // r28
|
||||
const JStudio::TControl* ctrl = static_cast<const JStudio::TControl*>(mObject->getControl()); // r28
|
||||
|
||||
emitter->stopDrawParticle();
|
||||
|
||||
Vec srts[2]; // 0x64
|
||||
Vec srts[2]; // 0x64
|
||||
Vec sp0C;
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&srts[0], sauVariableValue_3_TRANSLATION_XYZ);
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&srts[1], sauVariableValue_3_ROTATION_XYZ);
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&sp0C, sauVariableValue_3_SCALING_XYZ);
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&srts[0], sauVariableValue_3_TRANSLATION_XYZ);
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&srts[1], sauVariableValue_3_ROTATION_XYZ);
|
||||
mAdaptor->adaptor_getVariableValue_Vec(&sp0C, sauVariableValue_3_SCALING_XYZ);
|
||||
|
||||
Vec* pos; // r29
|
||||
Vec* pos; // r29
|
||||
|
||||
if (!mAdaptor->_1A4) {
|
||||
if (!ctrl->transformOnSet_isEnabled()) {
|
||||
pos = srts;
|
||||
} else {
|
||||
Vec outVec[2];
|
||||
MTXMultVec(ctrl->transformOnSet_getMatrix(), &srts[0], &outVec[0]);
|
||||
outVec[1].x = srts[1].x;
|
||||
outVec[1].y = ctrl->transformOnSet_getRotationY() + srts[1].y;
|
||||
outVec[1].z = srts[1].z;
|
||||
pos = outVec;
|
||||
}
|
||||
emitter->setGlobalTranslation(pos[0]);
|
||||
if (!mAdaptor->_1A4) {
|
||||
if (!ctrl->transformOnSet_isEnabled()) {
|
||||
pos = srts;
|
||||
} else {
|
||||
Vec outVec[2];
|
||||
MTXMultVec(ctrl->transformOnSet_getMatrix(), &srts[0], &outVec[0]);
|
||||
outVec[1].x = srts[1].x;
|
||||
outVec[1].y = ctrl->transformOnSet_getRotationY() + srts[1].y;
|
||||
outVec[1].z = srts[1].z;
|
||||
pos = outVec;
|
||||
}
|
||||
emitter->setGlobalTranslation(pos[0]);
|
||||
|
||||
int angleX = 65536.0 * (pos[1].x / 360.0);
|
||||
int angleY = 65536.0 * (pos[1].y / 360.0);
|
||||
int angleZ = 65536.0 * (pos[1].z / 360.0);
|
||||
emitter->setGlobalRotation(JGeometry::TVec3<s16>(angleX, angleY, angleZ));
|
||||
emitter->setGlobalScale(sp0C);
|
||||
} else {
|
||||
emitter->setGlobalScale(sp0C);
|
||||
} else {
|
||||
if (mAdaptor->_19C == NULL) {
|
||||
return;
|
||||
}
|
||||
Mtx spA8;
|
||||
Mtx sp78;
|
||||
Mtx sp78;
|
||||
Mtx sp48;
|
||||
if (mAdaptor->_19C->JSGGetNodeTransformation(mAdaptor->_1A0, spA8) == 0) {
|
||||
return;
|
||||
@@ -215,22 +215,22 @@ void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
|
||||
JStudio::math::getTransformation_SRxyzT(sp78, sp0C, srts[1], srts[0]);
|
||||
MTXConcat(spA8, sp78, sp48);
|
||||
emitter->setGlobalSRTMatrix(sp48);
|
||||
}
|
||||
}
|
||||
|
||||
GXColor color;
|
||||
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA);
|
||||
emitter->setGlobalPrmColor(color.r, color.g, color.b);
|
||||
GXColor color;
|
||||
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA);
|
||||
emitter->setGlobalPrmColor(color.r, color.g, color.b);
|
||||
|
||||
alpha *= (f64)color.a;
|
||||
u8 emitAlpha = 255;
|
||||
if (alpha < 255.0) {
|
||||
emitAlpha = (u8)alpha;
|
||||
}
|
||||
alpha *= (f64)color.a;
|
||||
u8 emitAlpha = 255;
|
||||
if (alpha < 255.0) {
|
||||
emitAlpha = (u8)alpha;
|
||||
}
|
||||
|
||||
emitter->setGlobalAlpha(emitAlpha);
|
||||
emitter->setGlobalAlpha(emitAlpha);
|
||||
|
||||
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR1_RGBA);
|
||||
emitter->setGlobalEnvColor(color.r, color.g, color.b);
|
||||
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR1_RGBA);
|
||||
emitter->setGlobalEnvColor(color.r, color.g, color.b);
|
||||
emitter->playDrawParticle();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user