mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-26 18:04:06 +00:00
Match ParseExtra functions (#605)
* Match ParseExtra functions * Match MxStillPresenter::ParseExtra * Match remaining ParseExtra functions
This commit is contained in:
committed by
GitHub
parent
ff04b0ba5a
commit
49d6c88912
@@ -53,39 +53,39 @@ LegoMeterPresenter::~LegoMeterPresenter()
|
||||
// FUNCTION: LEGO1 0x10043800
|
||||
void LegoMeterPresenter::ParseExtra()
|
||||
{
|
||||
char buffer[256];
|
||||
|
||||
MxStillPresenter::ParseExtra();
|
||||
*((MxU16*) &buffer[0]) = m_action->GetExtraLength();
|
||||
char* extraData = m_action->GetExtraData();
|
||||
|
||||
if (*((MxU16*) &buffer[0])) {
|
||||
MxU16 len = *((MxU16*) &buffer[0]);
|
||||
memcpy(buffer, extraData, len);
|
||||
buffer[len] = '\0';
|
||||
MxU16 extraLength;
|
||||
char* extraData;
|
||||
m_action->GetExtra(extraLength, extraData);
|
||||
|
||||
char result[256];
|
||||
if (KeyValueStringParse(buffer, g_type, result)) {
|
||||
if (!strcmpi(result, g_leftToRight)) {
|
||||
if (extraLength & MAXWORD) {
|
||||
char extraCopy[256];
|
||||
memcpy(extraCopy, extraData, extraLength & MAXWORD);
|
||||
extraCopy[extraLength & MAXWORD] = '\0';
|
||||
|
||||
char output[256];
|
||||
if (KeyValueStringParse(extraCopy, g_type, output)) {
|
||||
if (!strcmpi(output, g_leftToRight)) {
|
||||
m_layout = 0;
|
||||
}
|
||||
else if (!strcmpi(result, g_rightToLeft)) {
|
||||
else if (!strcmpi(output, g_rightToLeft)) {
|
||||
m_layout = 1;
|
||||
}
|
||||
else if (!strcmpi(result, g_bottomToTop)) {
|
||||
else if (!strcmpi(output, g_bottomToTop)) {
|
||||
m_layout = 2;
|
||||
}
|
||||
else if (!strcmpi(result, g_topToBottom)) {
|
||||
else if (!strcmpi(output, g_topToBottom)) {
|
||||
m_layout = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if (KeyValueStringParse(buffer, g_filterIndex, result)) {
|
||||
m_type = atoi(result);
|
||||
if (KeyValueStringParse(extraCopy, g_filterIndex, output)) {
|
||||
m_type = atoi(output);
|
||||
}
|
||||
|
||||
if (KeyValueStringParse(buffer, g_variable, result)) {
|
||||
m_variable = result;
|
||||
if (KeyValueStringParse(extraCopy, g_variable, output)) {
|
||||
m_variable = output;
|
||||
}
|
||||
else {
|
||||
EndAction();
|
||||
|
||||
@@ -260,25 +260,25 @@ void LegoModelPresenter::ReadyTickle()
|
||||
// FUNCTION: LEGO1 0x100801b0
|
||||
void LegoModelPresenter::ParseExtra()
|
||||
{
|
||||
char output[1024];
|
||||
MxU16 extraLength;
|
||||
char* extraData;
|
||||
m_action->GetExtra(extraLength, extraData);
|
||||
|
||||
MxU16 len = m_action->GetExtraLength();
|
||||
char* extraData = m_action->GetExtraData();
|
||||
if (extraLength & MAXWORD) {
|
||||
char extraCopy[1024], output[1024];
|
||||
output[0] = '\0';
|
||||
memcpy(extraCopy, extraData, extraLength & MAXWORD);
|
||||
extraCopy[extraLength & MAXWORD] = '\0';
|
||||
|
||||
if (len != 0) {
|
||||
char buffer[1024];
|
||||
output[0] = 0;
|
||||
memcpy(buffer, extraData, len);
|
||||
buffer[len] = 0;
|
||||
|
||||
if (KeyValueStringParse(output, g_autoCreate, buffer) != 0) {
|
||||
if (KeyValueStringParse(output, g_autoCreate, extraCopy) != 0) {
|
||||
char* token = strtok(output, g_parseExtraTokens);
|
||||
|
||||
if (m_roi == NULL) {
|
||||
m_roi = UnkSaveDataWriter()->FUN_10083500(token, FALSE);
|
||||
m_addedToView = FALSE;
|
||||
}
|
||||
}
|
||||
else if (KeyValueStringParse(output, g_dbCreate, buffer) != 0 && m_roi == NULL) {
|
||||
else if (KeyValueStringParse(output, g_dbCreate, extraCopy) != 0 && m_roi == NULL) {
|
||||
LegoWorld* currentWorld = CurrentWorld();
|
||||
list<LegoROI*>& roiList = currentWorld->GetUnknownList0xe0();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user