- fix: awardContract quantities now checked properly
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2866 127b21dd-08f5-0310-b4b7-95ae10353056
This commit is contained in:
parent
f2e2654786
commit
ec727b5ded
@ -1331,6 +1331,7 @@ static JSBool ShipAwardContract(JSContext *context, JSObject *this, uintN argc,
|
|||||||
ShipEntity *thisEnt = nil;
|
ShipEntity *thisEnt = nil;
|
||||||
BOOL OK = JSVAL_IS_INT(argv[0]);
|
BOOL OK = JSVAL_IS_INT(argv[0]);
|
||||||
NSString *key = nil;
|
NSString *key = nil;
|
||||||
|
int qty = 0;
|
||||||
|
|
||||||
if (!JSShipGetShipEntity(context, this, &thisEnt)) return YES; // stale reference, no-op.
|
if (!JSShipGetShipEntity(context, this, &thisEnt)) return YES; // stale reference, no-op.
|
||||||
|
|
||||||
@ -1345,8 +1346,9 @@ static JSBool ShipAwardContract(JSContext *context, JSObject *this, uintN argc,
|
|||||||
OK = ValidateContracts(context, this, argc, argv, outResult, YES); // always go through validate contracts (cargo)
|
OK = ValidateContracts(context, this, argc, argv, outResult, YES); // always go through validate contracts (cargo)
|
||||||
if (!OK) return NO;
|
if (!OK) return NO;
|
||||||
|
|
||||||
unsigned qty = JSVAL_TO_INT(argv[0]);
|
qty = JSVAL_TO_INT(argv[0]);
|
||||||
if (![thisEnt isPlayer] || (qty > [thisEnt availableCargoSpace] || qty < 1))
|
|
||||||
|
if (![thisEnt isPlayer] || qty < 1)
|
||||||
{
|
{
|
||||||
OOReportJSWarning(context, @"Ship.%@(): cannot %@.", @"awardContract", @"award contract");
|
OOReportJSWarning(context, @"Ship.%@(): cannot %@.", @"awardContract", @"award contract");
|
||||||
OK = NO;
|
OK = NO;
|
||||||
@ -1367,7 +1369,7 @@ static JSBool ShipAwardContract(JSContext *context, JSObject *this, uintN argc,
|
|||||||
JS_ValueToNumber(context, argv[4], &eta);
|
JS_ValueToNumber(context, argv[4], &eta);
|
||||||
JS_ValueToNumber(context, argv[5], &fee);
|
JS_ValueToNumber(context, argv[5], &fee);
|
||||||
// commodity key is case insensitive.
|
// commodity key is case insensitive.
|
||||||
OK = [(PlayerEntity*)thisEnt awardContract:JSVAL_TO_INT(argv[0]) commodity:key
|
OK = [(PlayerEntity*)thisEnt awardContract:qty commodity:key
|
||||||
start:JSVAL_TO_INT(argv[2]) destination:JSVAL_TO_INT(argv[3]) eta:eta fee:fee];
|
start:JSVAL_TO_INT(argv[2]) destination:JSVAL_TO_INT(argv[3]) eta:eta fee:fee];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user