Skip to content

Commit d6d6141

Browse files
authored
Merge pull request #528 from OoliteProject/equip_installTime_repairTime
Adds installationTime and repairTime to equipment info object
2 parents 83bc901 + 3ec53b5 commit d6d6141

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

Doc/CHANGELOG.TXT

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ Modified Plists:
8282
Scripting:
8383
----------
8484
* Added world event consoleMessageReceived.
85+
* Added world event guiSelectedRowChanged.
8586
* ship.canAwardEquipment now accepts optional additional parameter of "context",
8687
enabling checking of any context for the equipment item.
8788
* Added player.ship.previousSystem property, which contains the system ID of
@@ -99,6 +100,7 @@ Scripting:
99100
* Added equipment.defaultActivateKey and equipment.defaultModeKey, each are
100101
read-only arrays of the default key settings for the equipment item. Set to null
101102
if the values haven't been defined.
103+
* Added equipment.installationTime and equipment.repairTime properties.
102104

103105
Bug Fixes:
104106
==========

src/Core/Scripting/OOJSEquipmentInfo.m

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
kEquipmentInfo_defaultActivateKey,
5959
kEquipmentInfo_defaultModeKey,
6060
kEquipmentInfo_incompatibleEquipment,
61+
kEquipmentInfo_installationTime,
6162
kEquipmentInfo_isAvailableToAll,
6263
kEquipmentInfo_isAvailableToNPCs,
6364
kEquipmentInfo_isAvailableToPlayer,
@@ -67,6 +68,7 @@
6768
kEquipmentInfo_name,
6869
kEquipmentInfo_price,
6970
kEquipmentInfo_provides,
71+
kEquipmentInfo_repairTime,
7072
kEquipmentInfo_requiredCargoSpace,
7173
kEquipmentInfo_requiresAnyEquipment,
7274
kEquipmentInfo_requiresCleanLegalRecord,
@@ -100,6 +102,7 @@
100102
{ "defaultActivateKey", kEquipmentInfo_defaultActivateKey, OOJS_PROP_READONLY_CB },
101103
{ "defaultModeKey", kEquipmentInfo_defaultModeKey, OOJS_PROP_READONLY_CB },
102104
{ "incompatibleEquipment", kEquipmentInfo_incompatibleEquipment, OOJS_PROP_READONLY_CB },
105+
{ "installationTime", kEquipmentInfo_installationTime, OOJS_PROP_READONLY_CB },
103106
{ "isAvailableToAll", kEquipmentInfo_isAvailableToAll, OOJS_PROP_READONLY_CB },
104107
{ "isAvailableToNPCs", kEquipmentInfo_isAvailableToNPCs, OOJS_PROP_READONLY_CB },
105108
{ "isAvailableToPlayer", kEquipmentInfo_isAvailableToPlayer, OOJS_PROP_READONLY_CB },
@@ -109,6 +112,7 @@
109112
{ "name", kEquipmentInfo_name, OOJS_PROP_READONLY_CB },
110113
{ "price", kEquipmentInfo_price, OOJS_PROP_READONLY_CB },
111114
{ "provides", kEquipmentInfo_provides, OOJS_PROP_READONLY_CB },
115+
{ "repairTime", kEquipmentInfo_repairTime, OOJS_PROP_READONLY_CB },
112116
{ "requiredCargoSpace", kEquipmentInfo_requiredCargoSpace, OOJS_PROP_READONLY_CB },
113117
{ "requiresAnyEquipment", kEquipmentInfo_requiresAnyEquipment, OOJS_PROP_READONLY_CB },
114118
{ "requiresCleanLegalRecord", kEquipmentInfo_requiresCleanLegalRecord, OOJS_PROP_READONLY_CB },
@@ -250,6 +254,7 @@ static JSBool EquipmentInfoGetProperty(JSContext *context, JSObject *this, jsid
250254

251255
OOEquipmentType *eqType = nil;
252256
id result = nil;
257+
NSUInteger inst_time;
253258

254259
if (EXPECT_NOT(!JSEquipmentInfoGetEquipmentType(context, this, &eqType))) return NO;
255260

@@ -325,7 +330,16 @@ static JSBool EquipmentInfoGetProperty(JSContext *context, JSObject *this, jsid
325330
case kEquipmentInfo_provides:
326331
result = [eqType providesForScripting];
327332
break;
328-
333+
334+
case kEquipmentInfo_installationTime:
335+
inst_time = [eqType installTime];
336+
if (inst_time == 0)
337+
{
338+
inst_time = [eqType price] + 600;
339+
}
340+
*value = INT_TO_JSVAL((int32_t)inst_time);
341+
return YES;
342+
329343
case kEquipmentInfo_isAvailableToAll:
330344
*value = OOJSValueFromBOOL([eqType isAvailableToAll]);
331345
return YES;
@@ -337,7 +351,11 @@ static JSBool EquipmentInfoGetProperty(JSContext *context, JSObject *this, jsid
337351
case kEquipmentInfo_isAvailableToPlayer:
338352
*value = OOJSValueFromBOOL([eqType isAvailableToPlayer]);
339353
return YES;
340-
354+
355+
case kEquipmentInfo_repairTime:
356+
*value = INT_TO_JSVAL((int32_t)[eqType repairTime]);
357+
return YES;
358+
341359
case kEquipmentInfo_requiresEmptyPylon:
342360
*value = OOJSValueFromBOOL([eqType requiresEmptyPylon]);
343361
return YES;

0 commit comments

Comments
 (0)