293 Commits

Author SHA1 Message Date
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
8dac1d08cd Split JS Planet into Planet and Sun in anticipation of splitting PlanetEntity in same way.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1214 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-15 13:20:27 +00:00
Jens Ayton
6a8c7976dd Added scriptInfo dictionary to ships, and global JS objects worldScripts and worldScriptNames. Fiddled with messages on both sides of debug console. Fiddled with flags on JavaScript classes, hopefully for the better.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1211 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-13 15:10:16 +00:00
Nikos Barkas
992c731fd1 Updated GNUmakefile with newly added files. Eliminated an [interface] may not respond to [method] warning.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1201 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-08 13:23:56 +00:00
Nikos Barkas
f6e4fc2d18 Made the new Oolite debug console code compilable under Windows, hopefully without breaking anything. Updated gnustep-base.dll to version 1.13.0, as the previous one did not have support for NSStream objects. Fixed a couple of problems with the updated GNUmakefile.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1197 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-07 17:39:30 +00:00
Jens Ayton
8904c39401 Oolite should now build with external debug console support on all platforms. Mac debug OXP is broken.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1191 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-06 11:03:01 +00:00
Jens Ayton
7e4b1b0880 Implemented JS clock global object, unbroke makefile.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1175 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-15 15:09:19 +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
7b061ad0f7 Work on script timers.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1172 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-14 15:21:06 +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
693c27e2c2 Added OORoleSet to manage sets of ship roles and probabilities. Now used in -[Universe newShipWithRole:]. Next step: replace ShipEntity.roles with an OORoleSet. Future step: store role sets -- and other attributes -- in 'ship type' objects instead of parsing on the fly.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1165 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-07 10:14:30 +00:00
Nikos Barkas
5b4f34de0b Updated the Windows versions of js32.dll and libjs32.a to 1.70. Replaced older libjs32 headers required for the Win32 build with the new ones. Added OOJSOolite.m to the GNUstep project.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1161 127b21dd-08f5-0310-b4b7-95ae10353056
2007-09-06 15:24:58 +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
5c6e674fa2 Made OOJavaScriptConversion an informal protocol with a default implementation (returning JSVAL_NULL) for NSObject. Work on rewriting JS player proxy, moving properties up into Ship and Entity as appropriate. Reimplemented player.call(), allowing it to return values, and applying to entities in general. Ensured correct and consistent type conversion in JavaScript property getters/setters. Fixed bug where script-awarded missiles/mines would use two slots. Made blowUpStation actually blow up the station.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1119 127b21dd-08f5-0310-b4b7-95ae10353056
2007-08-02 16:41:55 +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
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
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
ad1b7f8204 Updated GNUmakefile for OXP verifier stuff.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1098 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-19 12:11:38 +00:00
Jens Ayton
9aa1e3947e Removed lingering bits of OOS code.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1093 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-18 21:21:06 +00:00
Jens Ayton
83c614dce2 Fix for makefile and OXPVerifier.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1092 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-18 21:20:06 +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
693bf7ac0d Removed OOS script support.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1089 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-17 10:48:43 +00:00
Nikos Barkas
43cb23d54d Fixed loadgame screen changing current galaxy seed. Fixed damaged equipment not appearing orange and half priced on the equipment purchase screen. Eliminated warning in ParticleEntity.m. Added TextureStore.m in the compile list, because of linker errors if it is missing.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1073 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-11 15:09:47 +00:00
Jens Ayton
2c03f45ffb Attempted fix to crash in CollisionRegion led to cascade of other dangling-pointer crashes. Reverted, and brute-forced it by ensuring entities do not die until the end of an update cycle.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1072 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-11 13:13:01 +00:00
Jens Ayton
bfc5cae918 Broke queue mechanism out of OOTextureLoader into separate class, partly for neatness and partly because I need it for something else.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1065 127b21dd-08f5-0310-b4b7-95ae10353056
2007-07-08 09:04:43 +00:00
Jens Ayton
59a5b197e0 Disabled extra bug checking in SkyEntity. Disabled build of OOSkyDrawable (both for Xcode and GNUmakefile).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1048 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-28 10:33:19 +00:00
Jens Ayton
45122c2250 Fix for shader uniform bindings under GNU Objective-C runtime.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1046 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-27 17:43:37 +00:00
Nikos Barkas
c8650adb03 Make debug functionality a build option under Windows. Fix compilation error under GNUstep. Get Oolite to compile even when CHECK_ERROR_AT_EACH_STEP is not set to 1.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1044 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-26 21:43:42 +00:00
Dylan Smith
070b7057e7 fix Linux build breaks
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1035 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-20 22:01:35 +00:00
hikari
ba1c215ff6 Modifed Linux specific portions of the build rules.
Added Ubuntu/Debian build glue.



git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1029 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-11 17:24:23 +00:00
Jens Ayton
9345ad2222 Further Linux-oriented GNUmakefile tweaks. Removed redundant Entity.actual_radius field (always same as Entity.collision_radius). Removed testing code from SkyEntity/OOSkyDrawable.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1024 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-11 11:08:44 +00:00
Jens Ayton
24097ad053 Xcode project file tweak to make new version work without star/nebula texture OXP. Added JavaScript library to makefile for Linux.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1023 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-10 13:49:37 +00:00
Jens Ayton
5164b5f4a6 New sky-drawing code. Currently doesn't produce the same skies as the old code, but otherwise seems to work.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1022 127b21dd-08f5-0310-b4b7-95ae10353056
2007-06-10 13:36:42 +00:00
Nikos Barkas
0a1560d670 Added libpng headers to project. Added OOGraphicsResetManager.m to GNUstep makefile. Oolite for Windows should now compile out of the box.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@988 127b21dd-08f5-0310-b4b7-95ae10353056
2007-05-24 07:39:44 +00:00
Nikos Barkas
6ae1f90c10 Updated GNUstep makefile so that Oolite compiles and links on Windows.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@978 127b21dd-08f5-0310-b4b7-95ae10353056
2007-05-21 14:04:22 +00:00
Jens Ayton
b06e89d5e9 All texture loading now goes through OOTexture (although still in some cases indirectly via TextureStore). SDLImage is thus obsolete. Removed obsolete bits of OpenGLSprite. Fixed cache pruning logic. blur256.png is now the actual texture used, rather than a placeholder. Black point adjustment for galaxy256.png's alpha channel. Fixed high-level logic in texture scaler.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@959 127b21dd-08f5-0310-b4b7-95ae10353056
2007-05-12 13:43:08 +00:00
Jens Ayton
c183b17568 Stuff that was preventing SDL builds from building.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@937 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-16 21:45:28 +00:00
Jens Ayton
da01dc5e92 Intermediate stage of moving shipentity meshes into separate class. Builds with warnings, but works.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@934 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-15 16:15:19 +00:00
Jens Ayton
cf9a7b9709 Greyscale texture loading works.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@932 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-15 09:15:50 +00:00
Jens Ayton
20dfbe62b4 Fixed potential (but unlikely) thread safety issue in texture loading, removed redundant locks in OpenGL extensions manager. Use four texture-loading threads for testing (should be based on number of processors). Fixed player-spawns-with-no-shields bug.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@931 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-14 10:12:37 +00:00
Jens Ayton
d7f84cb164 Moved some files around a little bit.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@926 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-13 10:49:46 +00:00
Jens Ayton
9ead245895 Fixed code using for (i = 0; i != [[foo allKeys] count]; i++) antipattern. Cleanup of player saving: uses proper way of getting an XML property list (which is cross-platform), better error messages, less code duplication. Added Edit menu to OS X version, for use in dialog boxes. Bits of new texture model, but they're not used yet.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@925 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-13 10:38:08 +00:00
Jens Ayton
73aafb43e1 Rewrite of shader code.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@923 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-11 20:29:30 +00:00
Jens Ayton
c611e69a33 Implemented JavaScript quaternion. Much cleanup. Made various enumerations actual enum types. Made some other integer types dedicated types. Slightly reduced size of entity instances. Relatively high chance of breakage.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@912 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-07 18:03:50 +00:00
Jens Ayton
67138687af implemented JS Entity class (but not tested - there's no way to get an entity yet). Simplified JS Vector by removing the reference-to-object-property stuff.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@910 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-06 15:09:19 +00:00
Jens Ayton
cc175c75b9 Changed references to PlayerEntityScripting to PlayerEntityLegacyScriptEngine. Cleanup of Entity.h led to making universe a global (UNIVERSE) because having lots of references to it and passing it around is silly, and it's used many thousand times per frame.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@906 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-05 16:46:46 +00:00
Jens Ayton
d327cb7b38 Fiddled with JavaScript loading and error reporting: unicode savvy, should load on all platforms.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@891 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-02 19:59:43 +00:00
dajt
98bbda198b Fixing compilation errors for GNUstep build.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@889 127b21dd-08f5-0310-b4b7-95ae10353056
2007-04-01 23:44:13 +00:00