Commit Graph

259 Commits

Author SHA1 Message Date
Martin Haye
0fe5ef28ca Refactored to get rid of lib vectors, thanks to Dave. 2016-07-03 13:39:00 -07:00
Martin Haye
0708cbda95 Took out some debug prints 2016-07-03 12:26:22 -07:00
Martin Haye
29f6df5913 Making good progress on external symbol resolving. 2016-07-03 12:01:35 -07:00
Martin Haye
ea5800155f Got basics of new fixup mechanism working. 2016-07-03 07:33:12 -07:00
Martin Haye
bb0a9339fe Can now define a Help global function in Outlaw, and it'll get called when '?' is hit in the gme. 2016-07-01 17:19:12 -07:00
Martin Haye
30a9f15ae2 Added generation for generic items like amulets. 2016-07-01 16:57:24 -07:00
Martin Haye
d89d9dfbad Fixed so some enemies get a crack at you when you're fleeing. 2016-07-01 16:32:57 -07:00
Martin Haye
437471451b Now handles scripted combat on 2D maps as well, and handles fleeing correctly. 2016-06-30 09:31:29 -07:00
Martin Haye
02bbbf5ac7 Clean up what happens at the end of a combat script. 2016-06-30 08:47:30 -07:00
Martin Haye
f1fbd7bd8c Working on getting script to resume after combat. 2016-06-30 08:36:46 -07:00
Martin Haye
cf0c3d3ac1 Fix memory and screen glitches when switching between scripted portrait moments, combat, and 3D display. 2016-06-29 07:42:58 -07:00
Martin Haye
8ebbc16da8 Fixed streqi logic for matching encounter zone codes. Added a Blockly for starting an encounter. 2016-06-28 07:40:09 -07:00
Martin Haye
45ab9bafe2 Implementing new game / load game screen. 2016-06-24 05:58:30 -07:00
Martin Haye
17793d011f Preserve previous saved game if 2mg is present. 2016-06-21 08:17:18 -07:00
Martin Haye
87ab8b6031 Allow control chars in command table; basic framework for game load/save established. 2016-06-19 08:38:40 -07:00
Martin Haye
dcea57cc7c It was silly to have strcmpi when all we needed was streqi. 2016-06-19 08:15:51 -07:00
Martin Haye
caa05f16f6 Refactored to save space in the main gameloop module. 2016-06-19 08:04:43 -07:00
Martin Haye
6c33299a77 Split game assets into two partitions, to pave the way for multi-floppy distribution. 2016-06-18 16:31:21 -07:00
Martin Haye
d5f1663267 Added ammo generation. 2016-06-17 07:26:53 -07:00
Martin Haye
fd989c0d32 Got rid of old hard-coded globalScripts.pla 2016-06-16 17:48:58 -07:00
Martin Haye
7e758be30e Added player generation. 2016-06-16 17:42:18 -07:00
Martin Haye
4e57da0d53 Now translating armor spreadsheet to code. 2016-06-16 07:27:13 -07:00
Martin Haye
646d48d206 Now packing weapons spreadsheet. 2016-06-13 08:15:14 -07:00
Martin Haye
4366daef8f Wasn't recording goldLoot for in enemies before. 2016-06-12 13:38:14 -07:00
Martin Haye
944935c4a2 Lots of refactoring of armor, weapons, character stats, etc. 2016-06-12 13:12:14 -07:00
Martin Haye
de33ab3b21 Generating stubs for all item types (weapons, armor, ammo, and items). 2016-06-11 10:58:33 -07:00
Martin Haye
92e5016cb9 Now parsing enemies from within the <sheets> element of world.xml 2016-06-08 09:56:10 -07:00
Martin Haye
170c98508f Moved player info display to separate module, party.pla. Added a few descriptive comments to help Dave get started. 2016-06-01 09:03:14 -07:00
Martin Haye
f82b080ae7 Fixed byte coercion problems uncovered by new Groovy version. 2016-05-31 08:28:02 -07:00
Martin Haye
8fa40a7040 Fix PackPartitions build to always use local groovy jar. 2016-05-31 08:03:26 -07:00
Martin Haye
3df106d6eb Unified build system, with new readme. 2016-05-31 07:45:49 -07:00
Martin Haye
6316395d16 Took out high-bit hacking, as Seth now has full control over these in Outlaw. 2016-05-31 07:17:38 -07:00
Martin Haye
0ea7e8194c Adding groovy jar to repo to ease build nightmares. 2016-05-31 07:03:54 -07:00
Martin Haye
672c00fdbd Changes to build cleanly in a fresh Debian box. 2016-05-30 08:27:06 -07:00
Martin Haye
cd4bd80639 Break up long strings automatically. 2016-05-19 09:31:05 +02:00
Martin Haye
6ed1518520 String management: break up long strings into plasma-size chunks; clear string pool after each. 2016-05-10 07:13:22 +02:00
Martin Haye
1bd54841e6 Now writes warnings to a file so Seth can see them easily. 2016-04-28 09:26:11 -07:00
Martin Haye
d0100f94e6 Barf when strings get too long. 2016-04-28 07:30:59 -07:00
Martin Haye
9cdc68b0ee Improved messaging for errors. 2016-04-26 06:39:44 -07:00
Martin Haye
1a36b10698 Handle de-quoting the enemies.tsv file. 2016-04-07 10:11:35 -07:00
Martin Haye
ccc43368d4 Encounter zones working now. 2016-03-31 10:01:04 -07:00
Martin Haye
d17ef502e3 Good progress on implementing encounter zones. 2016-03-29 15:17:42 -07:00
Martin Haye
510385ccd3 Better error reporting. 2016-03-27 08:18:32 -07:00
Martin Haye
3a1ad7a0c0 Streamlined packing procedure for Windows use. 2016-03-25 09:39:15 -07:00
Martin Haye
44ef8798e7 Now packing global scripts from the Outlaw file. In particular, now requires a 'New game' script to be present, that it used to set map coordinates now (and much more later). 2016-03-24 09:45:07 -07:00
Martin Haye
99f5879993 String response gathering and checking now working. 2016-03-22 08:22:26 -07:00
Martin Haye
4bf6d8204a Look for enemies.tsv and font.bin in current directory if not found in the standard place. This will allow Seth to be fully independent of us developers and our exacting directory structure. 2016-02-27 11:02:58 -08:00
Martin Haye
c845bf6587 A few changes to support unibuild on Windows. 2016-02-16 09:33:16 -08:00
Martin Haye
7d6393d9c8 PackPartitions now grabs code files as resources from the Jar file if they're not present locally. 2016-02-15 16:25:24 -08:00
Martin Haye
e05a9691f9 Further work on just-in-time copy to build dir. 2016-02-15 14:43:25 -08:00
Martin Haye
ed21cb6d23 Now doing a better job of packing if/else statements and variables. 2016-02-15 13:58:30 -08:00
Martin Haye
5aeabcde51 Use user-defined script names in generated PLASMA code. 2016-02-10 04:58:14 -08:00
Martin Haye
291d529d5a Added incremental build of map scripts. 2016-02-09 08:39:52 -08:00
Martin Haye
e12555531a Pure-PLASMA scripts from Outlaw now working. 2016-02-09 08:23:25 -08:00
Martin Haye
042450d4ce Map scripts now being built as PLASMA source which is then compiled, instead of direct-to-bytecode. This will be much easier to maintain once it's fully working. 2016-02-03 08:50:22 -08:00
Martin Haye
8439e6840d PackPartitions now builds a 'fat' jar file containing all classes and dependent libraries. 2016-02-01 08:07:12 -08:00
Martin Haye
4f6ca7ed34 Added cache to speed up packing. 2016-01-24 17:00:40 -08:00
Martin Haye
2851e6ca24 Cleaned up texture divvy code. 2016-01-24 13:11:35 -08:00
Martin Haye
c445c9808f Integrated disk image generation into PackPartitions. 2016-01-24 12:37:11 -08:00
Martin Haye
f239bd4ac2 PackPartitions now does everything itself: compile, assemble, pack. 2016-01-18 19:55:36 -08:00
Martin Haye
d1558d67cf PackPartitions now calls ACME to assemble sources. 2016-01-18 19:28:59 -08:00
Martin Haye
4caf8033b7 More progress building PLASMA code. 2016-01-18 18:23:02 -08:00
Martin Haye
26bc00f3af First steps getting PLASMA compiler to run inside PackPartitiions. 2016-01-18 17:59:54 -08:00
Martin Haye
4a410c8a07 Fixed circular dependencies at build time. 2016-01-18 17:00:31 -08:00
Martin Haye
59106ae953 Fixed nasty decompression bug having to do with match len multiple of 256. 2016-01-07 11:23:46 -08:00
Martin Haye
ecc9cc2016 Fixed portrait confusion, and moved enemy selection code to combat module. 2016-01-01 10:18:33 -08:00
Martin Haye
7e9bcabcc1 Now generating enemies from table instead of hand coding them. 2016-01-01 07:53:57 -08:00
Martin Haye
8c6c658ecf Making translating enemy table to code. 2016-01-01 06:04:42 -08:00
Martin Haye
9a1a1d0a0e Refactored global scripts into their own module. 2015-12-29 11:22:14 -08:00
Martin Haye
c4e46238cd Centralized all shared function vectors for efficiency; made mem debug printout fit on screen; use better notation for pointer-to-pointer; fixed bug causing combat to fail on 3D map. 2015-12-29 08:59:13 -08:00
Martin Haye
604857a4d2 Animations working in-engine for the first time. 2015-12-17 09:19:49 -08:00
Martin Haye
f46aed43a6 Pick up animation flags properly. 2015-12-17 06:48:15 -08:00
Martin Haye
11464433be Now packing animation sequences. 2015-12-12 07:22:15 -08:00
Martin Haye
54bdfdd47e Finished moving combat code to a module. 2015-12-10 09:43:21 -08:00
Martin Haye
be7ba4a3ed Added partial support for NPC party members; packer now produces headers for the PLASMA code so we don't have to hard-code image numbers. 2015-12-09 07:35:02 -08:00
Martin Haye
90187c007c Starting to work on translating enemy table to code. 2015-12-06 15:44:28 -08:00
Martin Haye
059f77aba1 Starting in on data generation. 2015-12-06 12:02:18 -08:00
Martin Haye
a4e87954a3 All code under Apache 1.1 license as we agreed on this morning. We always intended to do this, now actually getting around to it. 2015-09-10 09:22:07 -07:00
Martin Haye
45c993d610 Modified for new XSD place for script names. Also, added new Tab code from Andrew. 2015-07-06 17:09:15 -07:00
Martin Haye
195decd122 Added support for println and clearWindow blocks. Added support for defaults in keyboard teleport. Fixed nasty page-boundary bug for strings in scripts. 2015-07-04 10:02:49 -07:00
Martin Haye
1becc7d61b Added clamping on 2d map, so player never sees the black area outside the map. 2015-07-01 10:04:19 -07:00
Martin Haye
cf55e06347 Fixed fake character text; added support for control codes in packer. 2015-06-28 10:07:50 -07:00
Martin Haye
f4e7586c13 Fix for null category, and new font from Seth. 2015-06-19 12:40:41 -07:00
Martin Haye
edc1e7d410 Andrew's shiny new font engine is working! 2015-06-08 08:07:37 -07:00
Martin Haye
5fa973ea7c Added a 'get any key' block. 2015-06-03 07:56:19 -07:00
Martin Haye
6b51dff8b9 Added move_backward blockly block. 2015-05-31 19:03:38 -07:00
Martin Haye
57462b7638 Moved scenario script strings to aux mem. 2015-05-31 11:19:03 -07:00
Martin Haye
f1dfcccff3 Added Blockly blocks for showing portraits. 2015-05-28 08:14:01 -07:00
Martin Haye
a2454c1212 Fixes for map name display, sky/ground colors, and portrait rendering. 2015-05-27 08:13:09 -07:00
Martin Haye
2069140e31 Fixed for broken scripting after loading new map sections. 2015-05-21 07:19:22 -07:00
Martin Haye
907666c716 Now able to script transitions from 2D to 3D and back. 2015-05-20 09:47:35 -07:00
Martin Haye
80cf3ddb03 Got triggers working right on 3D map, including multiple triggers per location. 2015-05-15 08:19:18 -07:00
Martin Haye
d4a550f760 Corrected handling of obstruction and script flags on 2D map. 2015-05-07 06:54:43 -07:00
Martin Haye
f22f4ed9db Teleportation mostly fixed. 2015-05-06 09:36:27 -07:00
Martin Haye
1f5a6cec29 Basics of 2D teleport kinda working. 2015-04-20 08:32:02 -07:00
Martin Haye
9739fb34e9 Working on 2D teleportation. 2015-04-14 07:19:42 -07:00
Martin Haye
9e94928f0a More refactoring. 2015-04-09 10:31:36 -07:00
Martin Haye
4227042b11 More work refactoring API to rendering engines. 2015-03-31 12:02:48 -07:00
Martin Haye
a835321b5f Implemented printf for handy debugging, and now generating a map index for the 2D sections. 2015-03-25 07:40:46 -07:00
Martin Haye
56897dd67d Implementing printf-like family of functions. 2015-03-05 09:34:42 -08:00
Martin Haye
2b686a8629 More work on script triggers. 2015-02-27 05:33:11 -08:00
Martin Haye
abd63d0481 Now loading scripts for 2D maps, and registering the new trigger table. 2015-02-23 08:01:47 -08:00
Martin Haye
430ee9ce65 Now packing scripts for 2D map sections. 2015-02-19 10:44:17 -08:00
Martin Haye
792b8854ac More 2d work: tileset division, show avatar in center, fix load bug. 2015-02-16 16:18:00 -08:00
Martin Haye
b9a4caba1f Fixed tile address calculation and tileset numbering. 2015-01-27 08:36:05 -08:00
Martin Haye
09583ce1ce Now loading the initial 4 map sections in the tile engine. 2015-01-10 13:17:56 -08:00
Martin Haye
4e4892381f Now splitting maps up into sections. Refactored game loop to make room for 2D variant. 2015-01-07 14:48:04 -08:00
Martin Haye
14193fb73d Working on splitting 2D maps into sections. 2014-12-21 08:17:21 -08:00
Martin Haye
c43f381296 Much better error and warning pinpointing during pack process. 2014-09-11 08:54:37 -07:00
Martin Haye
a480dc8c96 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-09-11 06:48:04 -07:00
Martin Haye
c1f0cdab58 Added partial code to pack 126x128 images. 2014-09-11 06:48:01 -07:00
Brendan Robert
bcd2e6c83e Started adding tile engine support to the build/pack -- still have to pack maps and tilesets and create a test stub for the tile engine 2014-09-05 09:44:14 -05:00
Martin Haye
c7c969d2d0 Fixed bug where println wasn't recognized. 2014-07-25 18:33:44 -05:00
Martin Haye
e849051afd Implemented loading screen, fixed a bunch of bugs. 2014-07-21 18:28:39 -07:00
Martin Haye
a2830e9828 More work on init scripts, and proper redrawing after teleport. 2014-07-20 14:43:48 -07:00
Martin Haye
97b942036f Added blocks for setting sky and ground colors, and teleporting the player. Added support for init scripts using Blockly. 2014-07-20 06:02:10 -07:00
Martin Haye
ebe228d15f Now processing IF statements with GETYN triggers, and SETMAP events. 2014-07-19 15:55:27 -07:00
Martin Haye
f4342b12c1 Now scripts have a flag of their own on the map, for speedy detection. 2014-07-19 14:17:40 -07:00
Martin Haye
d6815eab05 Fixes for lots of scripts, and for empty script blocks. 2014-07-19 13:54:41 -07:00
Martin Haye
278d769ade Now packing tilesets, but not yet segmenting 2D maps. 2014-07-15 13:09:36 -07:00
Martin Haye
3bbcc7ed92 Rearranged things a bit in preparation for segmented 2D map packing. 2014-07-15 09:52:58 -07:00
Martin Haye
e56ad5e7da Really running scripts on the map now. 2014-07-08 19:11:03 -07:00
Martin Haye
d06884c0e9 Kinda loading scripts module, but it appears to be trashing memory. 2014-07-08 16:02:10 -07:00
Martin Haye
8a8204ec77 Now packing very simple game scripts. 2014-07-08 15:43:12 -07:00
Martin Haye
a330b395fe Working on text functions and scripting in Outlaw. 2014-07-08 09:39:31 -07:00
Martin Haye
3af48520a1 Implemented blocker sprites the right way. 2014-07-06 18:22:31 -07:00
Martin Haye
02cccb1270 Working on blocker sprites. 2014-07-06 17:25:48 -07:00
Martin Haye
f43c51dd74 Really loading and running PLASMA code now. 2014-07-03 16:56:26 -07:00
Martin Haye
269770da90 Debugging PLASMA loader. 2014-07-03 10:51:24 -07:00
Martin Haye
d4b90e32f8 Working on module loading in mem manager. 2014-06-29 14:32:51 -07:00
Martin Haye
68c70a3ec6 Working on parsing and compressing PLASMA modules. 2014-06-29 11:40:51 -07:00
Martin Haye
786853a4a7 Now runs PLASMA code\! 2014-06-25 08:47:28 -07:00
Martin Haye
7c00d7272a More bit hacking, added collision detection, playing with blocker sprites. 2014-06-16 09:03:24 -07:00
Martin Haye
d9a203c522 Sprite fixes, and workaround for Outlaw NPE. 2014-06-13 13:10:38 -07:00
Martin Haye
fa1bb0bd3c Hacked high-bits on tree sprite graphic. 2014-06-02 10:28:50 -07:00
Martin Haye
c9d84d11b5 Fixed raycaster going past the edge of the map. 2014-06-01 07:22:07 -07:00
Martin Haye
bbac1ea183 Fix edge detection in II raycaster. 2014-05-30 09:10:20 -07:00
Martin Haye
c8d8c22478 Use real map data in Javascript raycaster, so I can more closely simulate the Apple II and thus debug problems more easily. 2014-05-30 08:33:11 -07:00
Martin Haye
a82379bbe5 Compression has been working great, so turned off debug checksums. 2014-04-20 09:20:35 -07:00
Martin Haye
91586d8b3c Added sprites to map data, and to ray casting loop. 2014-04-20 09:16:40 -07:00
Martin Haye
ec49808879 Laxen rules on name matching. 2014-04-12 18:01:46 -07:00
Martin Haye
f6a6e844bb Compression now fully working. Also, changed core to be a .system file, so we don't need BASIC.SYSTEM any more. 2014-03-18 13:29:02 -07:00
Martin Haye
e741c5d57e Fixing lots of decompression bugs. 2014-03-17 11:30:15 -07:00
Martin Haye
539c878c5f Fixing decompressor bugs. 2014-03-17 07:49:40 -07:00
Martin Haye
37f4863e30 All compression code written and integrated; now to test. 2014-03-13 09:56:29 -07:00
Martin Haye
85f434aadf More work on compression. 2014-03-06 09:45:11 -08:00
Martin Haye
983f61b5c0 Making progress on LZ4 compression. 2014-03-06 07:25:04 -08:00
Martin Haye
625f2a44ea Added LZ5 compression to the packer. 2014-02-25 10:07:40 -08:00
Martin Haye
99827b9785 Now displays map name centered at top of window. 2014-02-20 09:13:30 -08:00
Martin Haye
14296ca13a Font engine integrated with raycaster. 2014-02-20 07:45:48 -08:00