204 Commits

Author SHA1 Message Date
Jens Ayton
2a2e31de07 More copyright strings.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1295 127b21dd-08f5-0310-b4b7-95ae10353056
2008-01-02 14:38:49 +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
a877783cea Bumped versions for trunk and 1.70-maintenance to 1.71 and 1.70.1 respectively to help avoid confusing them.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1259 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-03 18:05:21 +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
df05fbd65f Updated version numbers.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1250 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-02 20:43:08 +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
3781f83407 Added Eric Walch's suggested AI fixes (bug #12161). Added contributors.txt.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1213 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-13 19:24:06 +00:00
Jens Ayton
18d59be255 Fix to dockingAI.plist submitted by Eric Walch.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1209 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-10 21:59:36 +00:00
Jens Ayton
9c2f6c8ea4 Implemented portableish TCP-based JavaScript debug console. Some rearranging needed for it to be actually usable (I'll get on it tomorrow). Cleaned up Trumbles script.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1189 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-03 22:54:57 +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
Jens Ayton
892c271501 Split JS system into separate file. Started on support for ship scripts (incomplete).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1129 127b21dd-08f5-0310-b4b7-95ae10353056
2007-08-05 11:47:09 +00:00
Jens Ayton
31744b7903 Fix for legacy script engine local variables in set: and [] substitution. Unbroke equipment.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1122 127b21dd-08f5-0310-b4b7-95ae10353056
2007-08-03 14:53:02 +00:00
Jens Ayton
15255d19c0 JavaScript: entity class hierarchy now reflected in JS object prototype relationships (player is a Player is a Ship is an Entity). Fix for enery units being unbuyable; moved some hardcoded equipment requirements into equipment.plist; made -[PlayerEntity hasExtraEquipment:] accept arrays and sets of strings as well as individual strings.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1118 127b21dd-08f5-0310-b4b7-95ae10353056
2007-08-02 00:31:44 +00:00
Jens Ayton
c82db84119 Fix for positioning of image legends in HUDs. Generalized registration of 'well-known' files in file scanner OXP verifier stage.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1114 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-29 22:12:52 +00:00
Jens Ayton
122102af4f Cleanup; merged some very similar methods; made most HUD parameter reading use OOCollectionExtractors; made most of Universe use OOCollectionExtractors; added some schemata; moved schemata to separate folder. GNUmakefile.postamble has been updated to copy this folder into Resources/, but note that it isn't needed in final builds.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1112 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-29 14:17:30 +00:00
Jens Ayton
8a6252398d Redesigned plist verifier to allow recursive definitions. As a bonus, this simplified the code by removing the -normalize... methods. Shipdata.plist entry schema and schema schema now conform to working schema schema. Schema.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1108 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-27 16:33:28 +00:00
Jens Ayton
97fc89995b Reworked plist schema verifier to use NSError, allowing more informative error messages. Wrote a schema for plist schemas, but it can't currently be used because it has recursive references. (Fix: resolve macros at run time instead of preprocessing.)
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1107 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-27 00:53:44 +00:00
Jens Ayton
97211c9285 * Fixed backing up of log (OS X only).
* Only release plist parsing error messages under OS X (this is a documented requirement that doesn't follow normal usage, and isn't the right thing under GNUstep.)
* Work on shipdata.plist and model verifier stages.
* equipment_price_factor fixes: exploit when low equipment_price_factor doesn't affect refund prices, minimum equipment_price_factor of 0.5.
* Made fuel unsigned.
* Implemented property list schema verifier to simplify implementation of plist checkers.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1104 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-25 16:43:29 +00:00
Jens Ayton
b5d7ca37ee Work on shipdata.plist verifier stage; started fixing problems it reported with built-in shipdata.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1103 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-21 11:03:32 +00:00
Jens Ayton
9c66ca113c Added some verifier stages that don't actually do anything yet but make my auto-generated Graphviz file of the dependency graph look much cooler.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1102 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-20 22:44:37 +00:00
Jens Ayton
63f739dfb8 Unbroke OXP verifier.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1101 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-20 22:14:22 +00:00
Jens Ayton
66797761f4 Fixed makefile, hopefully.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1100 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-20 20:02:48 +00:00
Jens Ayton
8898364de2 OXP verifier: architectural changes, added design note, generate Graphviz file instead of text dump to debug dependency graph.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1099 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-20 16:29:40 +00:00
Jens Ayton
de2b1b194c OXP verifier validates equipment.plist, ignores .svn and CVS directories.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1097 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-19 12:09:01 +00:00
Jens Ayton
5d858a99f2 Added Read Me file detection and demoships.plist validation to OXP verifier.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1096 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-19 11:21:01 +00:00
Jens Ayton
675f2918e5 OXP verifier now checks requires.plist; added infrastructure to handle plists in verifier and fixed dependency management.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1095 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-19 10:44:52 +00:00
Jens Ayton
7780ef63bb OXP verifier can now identify bad case in standard folder names and config file names. Infrastructure is in place for general case mismatch detection. Fixed Windows build warnings reported by Sotho Tal Ker in forum.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1094 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-18 23:53:51 +00:00
Jens Ayton
e7c18ce0e8 Beginings of -verify-oxp support. Fix for freeze when like_ships refers to unknown ship. Ship set-up now fails if subentity set-up fails.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1091 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-18 15:42:58 +00:00
Jens Ayton
a3cee138b8 Bumped version number to 1.69.2. Removed support for deprecated shader features. Added caching of GL texture names to avoid expensive glGenTextures()/glDeleteTextures() call. Set texture cache size to something sensible (50 at the moment), but textures are being leaked. Fixed loss-of-precision bug in OOCollectionExtractors' double methods. Added collection extractor methods for vectors, quaternions, and non-negative floats/doubles. Switched on -Werror for OS X build.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1088 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-17 10:42:36 +00:00
Jens Ayton
1f8d82b8ee Switched to JavaScript implementation of cloaking device mission.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1085 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-14 13:53:50 +00:00
Jens Ayton
78275bee85 Implemented auto_ai ship attribute. Clamped laser head values for shaders. Tweaked logging to avoid sporadic 'logging not inited' message while quitting.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1074 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-12 11:33:26 +00:00
Jens Ayton
949cd8da04 Load screen now uses file extensions (urgh) to recognize saved games rather than trying to parse every file as a plist. Fixed display of giant question mark for unknown ship types (but it draws in the wrong place in wide windows, which probably also affects long ships).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1069 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-09 14:58:33 +00:00