diff options
Diffstat (limited to 'src/parser/parse_ini.yy')
-rw-r--r-- | src/parser/parse_ini.yy | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parser/parse_ini.yy b/src/parser/parse_ini.yy index 7d0a160..4676110 100644 --- a/src/parser/parse_ini.yy +++ b/src/parser/parse_ini.yy @@ -155,6 +155,8 @@ decl: BGCOLOR AFF INTHEX { gIni->style.bgColor = $3; } if ( gIni->firstPass==1 ) { yyassert($2>=0 && $2<MAX_OBJECTS_COUNT, "object_ index", OUT_OF_BOUNDS); yyassert($4>=0 , "object_ id value", OUT_OF_BOUNDS); + yyassert($6%2==0 , "object_ xpos is odd", BAD_VALUE); + yyassert($8%2==0 , "object_ ypos is odd", BAD_VALUE); yyassert($10==0 || $10==4 || $10==8, "object_ paintMode value", BAD_VALUE); yyassert($12==0 || $12==1, "object_ ud value", BAD_VALUE); @@ -172,6 +174,8 @@ decl: BGCOLOR AFF INTHEX { gIni->style.bgColor = $3; } if ( gIni->firstPass==1 ) { yyassert($2>=0 && $2<MAX_TERRAINS_COUNT, "terrain_ index", OUT_OF_BOUNDS); yyassert($4>=0 , "terrain_ id value", OUT_OF_BOUNDS); + yyassert($6%2==0 , "terrain_ xpos is odd", BAD_VALUE); + yyassert($8%2==0 , "terrain_ ypos is odd", BAD_VALUE); yyassert($10>=0 && $10<16, "terrain_ modifier value", BAD_VALUE); gIni->level.terrainCount++; @@ -181,12 +185,13 @@ decl: BGCOLOR AFF INTHEX { gIni->style.bgColor = $3; } gIni->level.terrains[$2].xpos = $6; gIni->level.terrains[$2].ypos = $8; gIni->level.terrains[$2].modifier = $10; -if ($10!=0 && $10!=2 && $10!=4 && $10!=6 &&$10!=8 && $10!=10 &&$10!=12 && $10 != 15 ) printf("modifier==%i\n", $10); } } | STEEL INT AFF INT VIR INT VIR INT VIR INT { if ( gIni->firstPass==1 ) { yyassert($2>=0 && $2<MAX_STEELS_COUNT, "steel_ index", OUT_OF_BOUNDS); + yyassert($4%2==0 , "steel_ xpos is odd", BAD_VALUE); + yyassert($6%2==0 , "steel_ ypos is odd", BAD_VALUE); yyassert($4>=0 && $4<LEVEL_WIDTH , "steel_ xpos value", OUT_OF_BOUNDS); yyassert($6>=0 && $6<LEVEL_HEIGHT , "steel_ ypos value", OUT_OF_BOUNDS); yyassert($8>=0 && $8<=STEEL_MAX_WIDTH, "steel_ width value", BAD_VALUE); |