Skip to content

Commit

Permalink
qtscript: Add parameter checking for buildings that do not exist. Fix…
Browse files Browse the repository at this point in the history
… one such error in semperfi.js.
  • Loading branch information
perim committed Jan 31, 2013
1 parent 89efe55 commit e38de7b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion data/mp/multiplay/skirmish/semperfi.js
Expand Up @@ -330,7 +330,7 @@ function buildFundamentals2()
}
}
// Build VTOL factory if we don't have one
if (isStructureAvailable(me, vtolFactory))
if (isStructureAvailable(vtolFactory, me))
{
var vfaccount = countStruct(vtolFactory);
if (vfaccount == 0 && playerPower(me) > 500 && grabTrucksAndBuild(20, vtolFactory, 1))
Expand Down
5 changes: 5 additions & 0 deletions src/qtscriptfuncs.cpp
Expand Up @@ -1157,6 +1157,7 @@ static QScriptValue js_pickStructLocation(QScriptContext *context, QScriptEngine
DROID *psDroid = IdToDroid(id, player);
QString statName = context->argument(1).toString();
int index = getStructStatFromName(statName.toUtf8().constData());
SCRIPT_ASSERT(context, index >= 0, "%s not found", statName.toUtf8().constData());
STRUCTURE_STATS *psStat = &asStructureStats[index];
const int startX = context->argument(2).toInt32();
const int startY = context->argument(3).toInt32();
Expand Down Expand Up @@ -1417,6 +1418,7 @@ static QScriptValue js_orderDroidBuild(QScriptContext *context, QScriptEngine *)
DROID_ORDER order = (DROID_ORDER)context->argument(1).toInt32();
QString statName = context->argument(2).toString();
int index = getStructStatFromName(statName.toUtf8().constData());
SCRIPT_ASSERT(context, index >= 0, "%s not found", statName.toUtf8().constData());
STRUCTURE_STATS *psStats = &asStructureStats[index];
int x = context->argument(3).toInt32();
int y = context->argument(4).toInt32();
Expand Down Expand Up @@ -1877,6 +1879,7 @@ static QScriptValue js_isStructureAvailable(QScriptContext *context, QScriptEngi
{
QString building = context->argument(0).toString();
int index = getStructStatFromName(building.toUtf8().constData());
SCRIPT_ASSERT(context, index >= 0, "%s not found", building.toUtf8().constData());
int player = context->argument(1).toInt32();
return QScriptValue(apStructTypeLists[player][index] == AVAILABLE
&& asStructLimits[player][index].currentQuantity < asStructLimits[player][index].limit);
Expand Down Expand Up @@ -1936,6 +1939,7 @@ static QScriptValue js_addStructure(QScriptContext *context, QScriptEngine *)
{
QString building = context->argument(0).toString();
int index = getStructStatFromName(building.toUtf8().constData());
SCRIPT_ASSERT(context, index >= 0, "%s not found", building.toUtf8().constData());
int player = context->argument(1).toInt32();
int x = context->argument(2).toInt32();
int y = context->argument(3).toInt32();
Expand All @@ -1955,6 +1959,7 @@ static QScriptValue js_getStructureLimit(QScriptContext *context, QScriptEngine
{
QString building = context->argument(0).toString();
int index = getStructStatFromName(building.toUtf8().constData());
SCRIPT_ASSERT(context, index >= 0, "%s not found", building.toUtf8().constData());
int player;
if (context->argumentCount() > 1)
{
Expand Down

0 comments on commit e38de7b

Please sign in to comment.