mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 17:01:28 +00:00
- removed parsing_ifelse sanity check because it breaks compilation in a few case.
if there ever needed to be proof that CON is broken beyond repair this should be it, this will allow broken code to slip through the parser and apparently some scripts exploit this bug. NAM's soldiers won't work with the 'proper' code.
This commit is contained in:
parent
7d414fcfa5
commit
253dea7610
1 changed files with 8 additions and 3 deletions
|
@ -722,7 +722,6 @@ void ConCompiler::checkforkeyword()
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
int ConCompiler::parsecommand()
|
||||
{
|
||||
const char* fn = fileSystem.GetFileFullName(currentsourcefile);
|
||||
|
@ -1499,6 +1498,7 @@ int ConCompiler::parsecommand()
|
|||
// case concmd_ifpupwind:
|
||||
|
||||
if_common: // this code is identical for all 'if...'instructions.
|
||||
{
|
||||
tempscrptr = scriptpos();
|
||||
reservescriptspace(1); //Leave a spot for the fail location
|
||||
|
||||
|
@ -1506,10 +1506,15 @@ int ConCompiler::parsecommand()
|
|||
parsecommand();
|
||||
|
||||
setscriptvalue(tempscrptr, scriptpos());
|
||||
if (keyword() == concmd_else) // only increment checking_ifelse if there actually is an else. Otherwise this would break the entire checking logic and render it non-functional
|
||||
auto k = keyword();
|
||||
// Cannot be done - the code starts misbehaving with this check, it is especially noticeable on the soldiers in NAM.
|
||||
// Unfortunately this means one less error check, but ultimately CON is too broken to begin with anyway
|
||||
#if 0
|
||||
if (k == concmd_else) / only increment checking_ifelse if there actually is an else. Otherwise this would break the entire checking logic and render it non-functional
|
||||
#endif
|
||||
checking_ifelse++;
|
||||
return 0;
|
||||
|
||||
}
|
||||
case concmd_leftbrace:
|
||||
num_squigilly_brackets++;
|
||||
do
|
||||
|
|
Loading…
Reference in a new issue