406 Commits

Author SHA1 Message Date
Jens Ayton
cc056a6a75 Legacy foo_actions can now have local variables, which are cleared when the _actions completes. Marked DebugConsole.py executable for unices. Fixed bugs in vector randomization code, and added a third randomizer which provides an even distribution of lengths (but uneven distribution in space).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1420 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-25 16:22:15 +00:00
Nikos Barkas
a88d505c40 Yet another forgotten string moved to descriptions.plist. Fixed bug in escortAI, where escorts would fall to a state of idleness after returning from intercept, due to lack of UPDATE actions in the BEGIN_BUSINESS state (thanks go to Eric Walch for the fix).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1413 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-24 10:04:01 +00:00
Jens Ayton
8a940f724c Mission choices are now sorted. Converted missiontext.plist to OpenStep syntax, and hotted it up with proper quotation marks and apostrophes. Changed magic numbers in -checkForAegis from integer to float literals. Hid entity.linkedList.verify.error message by default.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1402 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-22 15:26:40 +00:00
Nikos Barkas
d55403fd1b Externalized the (N/A) damaged equipment string. Inserted the load-previous-commander-(yes/no) keys in descriptions as a guide for people doing translation OXPs. Updated the contributors.txt file.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1395 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-20 07:16:01 +00:00
Nikos Barkas
579eb6aa33 Made intergalactic jump destinations user controllable. The planetinfo.plist key galactic_hyperspace_behaviour determines if the jump will be 1) the standard Oolite type (no isolated systems can be reached), 2) all systems are reachable or 3) fixed coordinates arrival, set by the key galactic_hyperspace_fixed_coords in planetinfo.plist. Also implemented JavaScript control methods PlayerSetGalacticHyperspaceBehaviour and PlayerSetGalacticHyperspaceFixedCoords and the inquiring equivalents player.galacticHyperspaceBehaviour, player.galacticHyperspaceFixedCoords_x and player.galacticHyperspaceFixedCoords_y.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1393 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-18 15:25:02 +00:00
Jens Ayton
0715cd3f1e * Random name generation once again uses typographic apostrophe (no, it's _not_ an acute accent), but now properly excludes it for system names.
* Removed pointless cache for relatively rarely used commodity display name lookup.
* Added playerEnteredNewGalaxy(newGalaxyNumber) script event.
* Changed descriptions.plist to OpenStep format.
* Descriptions.plist is now loaded before the first time it's used.
* -[Universe descriptionForKey:] and thus DESC() can now select a random string from an array.
* Added -[Universe descriptionForArrayKey:index:] for localization array lookups.
* Removed hard-to-localize [is-word] in favour of [system-description-string], and [adjusting-word] in favour of [clock-format] and [clock-format-adjusting].
* Removed redundant description strings [long-range-chart-find-planet] and [gameoptions-back].
* Moved mass-unit-to-string mapping to OOConstToString.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1376 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-14 17:23:24 +00:00
Marc
a5fd85ed95 Small tidying up of setUpEscort code and translation string handling, added the credit symbol to the ship purchase & planet info screens.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1371 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-12 21:04:59 +00:00
Nikos Barkas
6253b91791 One more (forgotten) string moved out to descriptions.plist for i18n purposes.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1365 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-12 07:14:29 +00:00
Nikos Barkas
d5a8ef0b56 Added the commander_shipdisplayname string substitution, updated trumbles mission accordingly.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1363 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-11 13:00:02 +00:00
Jens Ayton
a6e6dbb6cc Removed redundant mapping of tab to space (done in code and in font generator). Exposed commodity display names to JavaScript as global DisplayNameForCommodity(). Made commodity symbolic name -> display name mapping case insensitive. NOTE: this changes keys in descriptions.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1362 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-11 12:21:11 +00:00
Jens Ayton
03f321da01 Font encodings now specified as descriptive strings. After much fiddling to get fonttexgen to use a PDF for the custom symbols, gave up and generated a big bitmap instead. Generated 1024x1024 Cyrillic font texture, other encodings coming soon.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1358 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-10 17:48:08 +00:00
Jens Ayton
77cde62c7b Made commodity display names localizable via descriptions.plist. Probably missed some cases.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1356 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-09 17:16:43 +00:00
Jens Ayton
bf6826ce39 Patches from Kaks: support for 'abs' co-ordinate system, and auto_ai support for escort set-up.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1353 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-07 19:51:00 +00:00
Jens Ayton
907340dfc8 Fix for missionScreenEnded not being called when launching during a mission screen.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1339 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-03 00:27:44 +00:00
Nikos Barkas
d6be045ba9 Corrected a small parse error in oolite-font.plist that was preventing the white star character from appearing on the GNUstep builds (thanks Ahruman).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1338 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-02 10:58:00 +00:00
Nikos Barkas
8a388b2b6a Escorts are now working again, hopefully without side effects. Replaced acute accent with apostrophe in the main digrams string in descriptions.plist, because it was causing invalid planet names generation.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1336 127b21dd-08f5-0310-b4b7-95ae10353056
2008-02-02 09:25:16 +00:00
Jens Ayton
07fc2a25b6 Fixed some bugs in OXP verifier.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1325 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-28 01:24:40 +00:00
Jens Ayton
c812e61ad9 More data-driven text rendering with eight-bit encoding support.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1323 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-27 23:37:56 +00:00
Nikos Barkas
40007231b6 Fixed a problem where a ship having a script pre-assigned would not get its scriptactions set. Ships getting destroyed now can respond to whom and why queries for shipDied. Removed hardcoded text from trumbles script. Fixed a typo in descriptions.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1318 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-21 07:29:31 +00:00
Nikos Barkas
c47f8db6aa Fixed a small problem with the shader effects option being displayed incorrectly. Some more strings externalized.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1316 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-19 10:57:41 +00:00
Nikos Barkas
e7f0b0e316 Made the Y/N response on the intro1 screen user settable. Also fixed a problem with descriptions.plist that was generating incorrect planet descriptions.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1315 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-18 07:16:19 +00:00
Nikos Barkas
049a9ab4eb A few more hardcoded strings externalized.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1314 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-17 17:32:46 +00:00
Nikos Barkas
7b68d32e5f Fixed a bug in the contracts screen, where premium and fee for passengers would be displayed incorrectly, as a result of attempting to display unsigned long longs as ints.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1313 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-17 16:45:32 +00:00
Nikos Barkas
869baca25a Made arrays mergeable like dictionaries, thus enabling for example OXP created equipment to override the standard one instead of being added on top of it. More internationalization farming outto shipdata.plist. By now, all (or almost all) game strings should have been externalized.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1312 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-16 08:27:38 +00:00
Nikos Barkas
295fa03c8e Even more game strings moved to descriptions.plist for the purposes of making Oolite multi-language capable.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1310 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-14 18:35:12 +00:00
Nikos Barkas
0bce1be2ed More game strings moved out to descriptions.plist. Also added the commsMessageByUnpiloted method, but its code is disabled until approved for inclusion.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1309 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-14 07:18:46 +00:00
Nikos Barkas
00da1bed7e Farmed out all displayable constant game strings to descriptions.plist, as a first step in adding full multilingual support to Oolite. Testing required.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1308 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-13 14:24:10 +00:00
Jens Ayton
804b2fea93 Fix for Asps not having lasers when bought. Subentities no longer count as kills (trunk only).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1305 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-09 01:11:38 +00:00
Nikos Barkas
d9e11be684 Tweaked missile accuracy so that it is handled in a saner way than before. Valid values for accuracy of missiles are now from 0.0 to 10.0, as one would expect and m.a. is clamped to this range at entity initialization. Also updated the date strings appearing in the game to reflect new year change.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1292 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-02 06:25:41 +00:00
Nikos Barkas
d6fcfe75d4 Missiles now use the accuracy variable to determine how well to track targets. Accuracy must be more than 1.0 and less than or equal to 10.0, otherwise it is ignored. Made the required Advanced Nav Array tech level equal to 7, as it was meant to be.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1291 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-01 15:38:28 +00:00
Jens Ayton
4919cb197e Changed OOCreditsQuantity to uint64_t.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1274 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-13 11:53:25 +00:00
Jens Ayton
856409ed46 Added ability to explicitly bind shaders to subentity rather than root entity (backported to 1.70-m). Added support for hull heat glow to default shader (full shader mode only). Added Eric Walch's list of pre-existing roles to pirate-victim-roles.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1265 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-05 14:32:56 +00:00
Jens Ayton
4546eb0baa Fix for OXP verifier turning of log message classes. Exterminated all uses of NSLog that turn up in Mac builds.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1257 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-03 17:53:37 +00:00
Jens Ayton
56eb8f1738 Renamed a bunch of script handlers and gave NPC scripts some events that only player scripts got before. Added compatibility mechanism to point out uses of old handlers.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1247 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-02 00:50:06 +00:00
Nikos Barkas
665bba439c Fixed a problem in shipdata.plist, whereby the GNUstep parser was getting confused due to nested comment.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1245 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-25 21:24:13 +00:00
Jens Ayton
280f4d7828 Fixed some warnings in Windows build; switched cloaking device pod to use JavaScript implementation now that its script_actions are no longer needed for testing; fiddled with OOCollectionExtractors for a tool I'm fiddling with.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1243 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-24 15:58:15 +00:00
Jens Ayton
3fbc24887d * All ships now have a JavaScript script attached, allowing JS scripts to
add behaviours to any ship.
* Legacy script_actions, setup_actions, launch_actions and death_actions
  handled through default JavaScript script.
* In order to implement the above, JS Ship now has a runLegacyScriptActions
  method. This is not to be exposed as an "official" method, though, since
  we might want to change the mechanism -- for instance, to "compile"
  legacy scripts into JS. Handling dynamically-generated legacy scripts in
  that case would be a significant complication.
* Updates for Mac OS X 10.5 "Leopard".
  - Errors on reading/writing plist will not cause a crash if building
    against the Leopard SDK. (I have no intention of requiring Leopard any
    time soon, but future-proofing is good.)
  - OOWeakReference is now more efficient when running under Leopard, by
    implementing the new "fast forwarding" mechanism.
  - Threads now have names set under Leopard, which may provide debugging
    advantages.
  - Fixed some new build warnings for new version of apple-gcc.
  - Updated type declarations to identify Oolite saved games as property
    lists.
* Cleaned up PlayerEntityControls.m somewhat. Moved method declarations
  into files, fixed indentation, broke up monster giant method of doom.
* Script-generated asteroids now behave like system populator-generated
  asteroids (As Seen on BB[TM]).
* Minor optimizations and simplifications of legacy script engine.
* JS System.filteredEntities() now has sensible behaviour if predicate
  throws an exception: the predicate is not called again, and null is
  returned. The exception is reported and not rethrown.


git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1240 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-23 15:04:14 +00:00
Jens Ayton
4a776c4193 Implemented recursion limiter in AI method reactToMessage: in response to SCR crash report.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1236 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-19 18:34:28 +00:00
Nikos Barkas
39f1fd30fb Bypass two harmless, log cluttering OpenGL error reports, at the same time gaining on performance, by setting rendering.opengl.error to no in logcontrol.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1235 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-17 21:34:05 +00:00
Jens Ayton
44fd79dc64 Cache synthesized material dictionaries. Added sendScriptMessage: AI method.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1231 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-23 07:36:58 +00:00
Jens Ayton
9d9128bcb1 * Got Game Options submenu working under OS X.
* Save reduced detail, wireframe and shader settings in preferences.
* Implemented variable shader complexity support.
Added default shader, used for all otherwise-unshaded ships with full shaders on, and for smooth ships or ships with effect maps specified in material dictionary with simple shaders.
* All ships now drawn with slight specular highlight by default (shininess = 10, intensity = 0.2) except in reduced detail mode.
* (JS) Made Ship.shipDescription read-write (except for the player).
* (JS) Added global function ExpandDescription(string : String), to perform substitutions like %H, [commander_name] and so forth. 
* (JS) Added global function RandomName(), intended to be like %R substitution. In so doing, I discovered that %R is broken, but left it as-is so it will generate the same name for existing descriptions. Added %X to do the same thing, but without the bugs. RandomName() is different from either in that it doesn't use the "predictable" PRNG, so it will provide a new name each time. To use the "predictable" variant in JavaScript, use ExpandDescription("%X"). 
* Ships that hyperspace out are no longer replenished in interstellar space.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1228 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-22 12:18:18 +00:00
Jens Ayton
ed757081ba Added missing file. Removed some commented out junk code. Fixed invalid XML comment.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1188 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-30 10:21:49 +00:00
Jens Ayton
3c16a7cdaf Added clearMissionScreen scripting method (legacy and JS). Scripting tweaks. Ported trumble mission to JavaScript. Attempted to address JS Ship.escorts bug but couldn't reproduce it.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1187 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-29 12:27:31 +00:00
Jens Ayton
ff941ad9ff More explicit message about the need to set JS_C_STRINGS_ARE_UTF8. Explicitly set scanClass of 'barrel' to CLASS_CARGO for scripted creation.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1186 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-29 09:08:31 +00:00
Jens Ayton
8b098b3b76 Implemented Player.commsMessage() and player.consoleMessage() JS methods. Mucked about with key_dump_target_state -- now debug/test build only.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1183 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-23 14:32:40 +00:00
Jens Ayton
0da77044e5 Implemented JS Timer object. Updated priority queue test case.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1173 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-15 13:53:30 +00:00
Jens Ayton
77df587d1a Split out remaining JS classes from OOJavaScriptEngine.* into new files. Added expandable pirate-victim recognition via pirate-victim-roles.plist. Added a number of AI methods for searching for entities by role and scan class.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1169 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-12 17:00:59 +00:00
Jens Ayton
a265c06344 * Work on generic-ish JavaScript object bridging.
* Fixed potential crashing bug in JS memory management (OOJSScript was not releasing its JS GC root).
* Fixed bug with several shipdata.plist settings being ignored in StationEntitys (bug #11684).
* Added JS Oolite object for app and JS version number checking; may add other facilities.
* Require latest version of SpiderMonkey (Gecko 1.8/FireFox 2 version) with JavaScript 1.7 support, built with JS_C_STRINGS_ARE_UTF8. 
*Made SpiderMonkey build as a subproject in Xcode for ease of debugging.
* Further fiddling with Mac debug console.
* Added has_npc_traffic attribute to StationEntity.


git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1157 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-04 23:04:09 +00:00
Jens Ayton
09ae998842 Converted shipdata.plist to OpenStep format and merged in Commander McLane's tweaks to views, external views and laser positions.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1156 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-02 18:45:44 +00:00
Jens Ayton
0ffb248771 For the past two weeks I've been procrastinating from fixing a double-free bug in the JS accessor for Ship.escorts (or, more precisely, in the code constructing a JS array). The bug was in r1129, so not checking stuff in doesn't really make much sense.
Fixes in that time:
* Clean, integrated model for JS ship scripts and world scripts.
* Player ships support JS ship scripts (but not ones synthesized from legacy actions).
* Subentity shader uniform bindings bind to owning ship as intended.
* Fixed like_ship recursion limiter in -[Universe getDictionaryForShip:].
* Fixed a bug in material configuration parsing.
* Fixed a material bug where a shader material with textures, followed by a shader material with no textures, followed by a basic material with no textures would leave a texture bound.
* Cleaned up NSArray -> JS array conversion, without fixing aforementioned bug.
* Made JS Ship property "target" read/write, and made property setting work.
* Added JS Quaternion.random() static method.


git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1136 127b21dd-08f5-0310-b4b7-95ae10353056
2007-08-19 23:05:48 +00:00