mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-13 07:58:04 +00:00
Rednukem: fix WW2GI events
This commit is contained in:
parent
d5e3be61c2
commit
b9e9b25cc6
1 changed files with 26 additions and 16 deletions
|
@ -65,8 +65,6 @@ static int32_t C_SetScriptSize(int32_t size);
|
||||||
|
|
||||||
static intptr_t apScriptGameEventEnd[MAXEVENTS];
|
static intptr_t apScriptGameEventEnd[MAXEVENTS];
|
||||||
static intptr_t g_parsingActorPtr;
|
static intptr_t g_parsingActorPtr;
|
||||||
static intptr_t g_scriptEventBreakOffset;
|
|
||||||
static intptr_t g_scriptEventChainOffset;
|
|
||||||
static intptr_t g_scriptEventOffset;
|
static intptr_t g_scriptEventOffset;
|
||||||
static char *textptr;
|
static char *textptr;
|
||||||
|
|
||||||
|
@ -1724,7 +1722,7 @@ static int32_t C_ParseCommand(int32_t loop)
|
||||||
}
|
}
|
||||||
g_szCurrentBlockName[j] = 0;
|
g_szCurrentBlockName[j] = 0;
|
||||||
// g_labelsOnly = 1;
|
// g_labelsOnly = 1;
|
||||||
C_GetNextValue(LABEL_EVENT);
|
C_GetNextValue(LABEL_DEFINE);
|
||||||
g_labelsOnly = 0;
|
g_labelsOnly = 0;
|
||||||
g_scriptPtr--;
|
g_scriptPtr--;
|
||||||
j= *g_scriptPtr; // type of event
|
j= *g_scriptPtr; // type of event
|
||||||
|
@ -1738,15 +1736,7 @@ static int32_t C_ParseCommand(int32_t loop)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// if event has already been declared then store previous script location
|
// if event has already been declared then store previous script location
|
||||||
if (!apScriptEvents[j])
|
apScriptEvents[j] = g_scriptEventOffset;
|
||||||
{
|
|
||||||
apScriptEvents[j] = g_scriptEventOffset;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_scriptEventChainOffset = apScriptEvents[j];
|
|
||||||
apScriptEvents[j] = g_scriptEventOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_checkingIfElse = 0;
|
g_checkingIfElse = 0;
|
||||||
|
|
||||||
|
@ -2152,7 +2142,7 @@ ifvar:
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_LEFTBRACE:
|
case CON_LEFTBRACE:
|
||||||
if (EDUKE32_PREDICT_FALSE(!(g_processingState || g_parsingActorPtr)))
|
if (EDUKE32_PREDICT_FALSE(!(g_processingState || g_parsingActorPtr || g_scriptEventOffset)))
|
||||||
{
|
{
|
||||||
g_errorCnt++;
|
g_errorCnt++;
|
||||||
C_ReportError(ERROR_SYNTAXERROR);
|
C_ReportError(ERROR_SYNTAXERROR);
|
||||||
|
@ -2443,12 +2433,32 @@ ifvar:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CON_ENDEVENT:
|
||||||
|
|
||||||
|
if (EDUKE32_PREDICT_FALSE(!g_scriptEventOffset))
|
||||||
|
{
|
||||||
|
C_ReportError(-1);
|
||||||
|
initprintf("%s:%d: error: found `endevent' without open `onevent'.\n",g_scriptFileName,g_lineNumber);
|
||||||
|
g_errorCnt++;
|
||||||
|
}
|
||||||
|
if (EDUKE32_PREDICT_FALSE(g_numBraces != 0))
|
||||||
|
{
|
||||||
|
C_ReportError(g_numBraces > 0 ? ERROR_OPENBRACKET : ERROR_CLOSEBRACKET);
|
||||||
|
g_errorCnt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_scriptEventOffset = g_parsingActorPtr = 0;
|
||||||
|
g_currentEvent = -1;
|
||||||
|
Bsprintf(g_szCurrentBlockName,"(none)");
|
||||||
|
continue;
|
||||||
|
|
||||||
case CON_ENDA:
|
case CON_ENDA:
|
||||||
if (EDUKE32_PREDICT_FALSE(!g_parsingActorPtr))
|
if (EDUKE32_PREDICT_FALSE(!g_parsingActorPtr || g_scriptEventOffset))
|
||||||
{
|
{
|
||||||
C_ReportError(-1);
|
C_ReportError(-1);
|
||||||
initprintf("%s:%d: error: found `enda' without open `actor'.\n",g_scriptFileName,g_lineNumber);
|
initprintf("%s:%d: error: found `enda' without open `actor'.\n",g_scriptFileName,g_lineNumber);
|
||||||
g_errorCnt++;
|
g_errorCnt++;
|
||||||
|
g_scriptEventOffset = 0;
|
||||||
}
|
}
|
||||||
if (EDUKE32_PREDICT_FALSE(g_numBraces != 0))
|
if (EDUKE32_PREDICT_FALSE(g_numBraces != 0))
|
||||||
{
|
{
|
||||||
|
@ -2719,8 +2729,8 @@ void C_ReportError(int32_t iError)
|
||||||
{
|
{
|
||||||
if (Bstrcmp(g_szCurrentBlockName,g_szLastBlockName))
|
if (Bstrcmp(g_szCurrentBlockName,g_szLastBlockName))
|
||||||
{
|
{
|
||||||
if (g_processingState || g_parsingActorPtr)
|
if (g_scriptEventOffset || g_processingState || g_parsingActorPtr)
|
||||||
initprintf("%s: In %s `%s':\n",g_scriptFileName,g_parsingActorPtr?"actor":"state",g_szCurrentBlockName);
|
initprintf("%s: In %s `%s':\n",g_scriptFileName,g_scriptEventOffset?"event":g_parsingActorPtr?"actor":"state",g_szCurrentBlockName);
|
||||||
else initprintf("%s: At top level:\n",g_scriptFileName);
|
else initprintf("%s: At top level:\n",g_scriptFileName);
|
||||||
Bstrcpy(g_szLastBlockName,g_szCurrentBlockName);
|
Bstrcpy(g_szLastBlockName,g_szCurrentBlockName);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue