Kari Salminen
6ee8022bac
Type 21 overlay comment update (Found the drawing routine in the disassembly and checked the original for how the oxygen gauge during the first arcade sequence looks like. They're some kind of sprites most likely and not just simply filled rectangles).
...
svn-id: r33826
2008-08-13 13:40:28 +00:00
Kari Salminen
582104752b
Hopefully fixes 'Conditional jump or move depends on uninitialised value(s)' Valgrind warning at sound.cpp:611.
...
svn-id: r33812
2008-08-12 23:56:13 +00:00
Kari Salminen
954244d350
Fixed drawPlainBox's boundary checking (It wrote outside the screen occasionally). Now using the Common::Rect for clipping, yay! It's good.
...
svn-id: r33811
2008-08-12 23:44:39 +00:00
Kari Salminen
00cbedb25f
Added possibility to get the read resource's size from readBundleFile. Made loadMsg handle input data that has empty strings residing just beyond the input buffer (Thanks Valgrind :-)).
...
svn-id: r33810
2008-08-12 22:45:38 +00:00
Joost Peters
03edc74ef6
fix typo 'baclup' -> 'backup'
...
svn-id: r33809
2008-08-12 21:23:40 +00:00
Kari Salminen
095fa55527
Fix for GCC warning in OSRenderer::renderOverlay: declaration of 'len' shadows a previous local.
...
svn-id: r33808
2008-08-12 20:58:26 +00:00
Kari Salminen
e547eeb116
Tiny comment fix.
...
svn-id: r33807
2008-08-12 20:27:49 +00:00
Kari Salminen
eb9633ee1e
Implemented Operation Stealth's makeCommandLine.
...
svn-id: r33805
2008-08-12 19:33:17 +00:00
Kari Salminen
811e4b3128
Implemented Operation Stealth specific parts of processInventory and added another mouse button waiting loop into the function's end (It's in both Future Wars and Operation Stealth). Fixes inventory showing in Operation Stealth.
...
svn-id: r33795
2008-08-12 14:44:44 +00:00
Kari Salminen
c935a09ef5
Changed commandBuffer from a char[80] to Common::String and made FWRenderer::setCommand use a Common::String. Hopefully this might help with the command buffer overflow stuff, although this isn't a fix for the problem behind it, just a bandaid.
...
svn-id: r33793
2008-08-12 00:13:27 +00:00
Kari Salminen
96a1ca1709
Made Operation Stealth's action failure messages use a background color set by the opcode 0x49 'o1_setDefaultMenuBgColor'. Should fix the 'text hard to read' problems.
...
svn-id: r33792
2008-08-11 23:20:10 +00:00
Kari Salminen
88ec480cef
Implemented drawMessage changes for Operation Stealth's timed cutscenes (Negative colors are used for timed text boxes that are totally transparent, only the text is drawn).
...
svn-id: r33790
2008-08-11 23:01:32 +00:00
Kari Salminen
36e0d2eab8
Moved fontParamTable inside TextHandler struct and made it a constant size as that's what it is (No need for using malloc & free anymore). Previously we would've tried to free an array that wasn't heap-allocated in freePoldatDat (Freeing fontParamTable_standard or fontParamTable_alt), that's fixed.
...
svn-id: r33786
2008-08-11 22:26:25 +00:00
Kari Salminen
8aaba9d38e
Changed palPtr from a pointer to a Common::Array named palArray. Removed palEntriesCount variable as it's now equivalent to palArray.size().
...
svn-id: r33785
2008-08-11 21:45:47 +00:00
Kari Salminen
d6dde4b85f
Removed textDataPtr pointer as it's not used beyond the loadTextData function. Reworked loadTextData a bit so there are no two loops for the same thing (Also renamed some of the local variables).
...
svn-id: r33784
2008-08-11 21:26:41 +00:00
Kari Salminen
2d5a140725
Changed partBuffer from a pointer to a Common::Array. Removed numElementInPart variable as it's now equivalent with partBuffer.size().
...
svn-id: r33783
2008-08-11 20:41:13 +00:00
Kari Salminen
c1462dda14
Added a safeguard to readBundleFile so it shouldn't corrupt memory even if the input says the data's unpacked size is less than its packed size (This shouldn't ever happen with non-corrupted data).
...
svn-id: r33782
2008-08-11 20:18:33 +00:00
Kari Salminen
02c9cb35f4
Changed readBundleFile to unpack data in-place and added debugging messages to the function.
...
svn-id: r33781
2008-08-11 20:09:03 +00:00
Kari Salminen
ef3b72d5e4
Converted zoneData and zoneQuery tables from plain array types to Common::Array. Should help catch out of bounds access errors that may cause memory corruption.
...
svn-id: r33727
2008-08-09 22:38:03 +00:00
Kari Salminen
983a4f21e5
Converted animDataTable from a plain array to a Common::Array. Should help to catch out of bounds access errors which may cause memory corruption.
...
svn-id: r33726
2008-08-09 20:55:01 +00:00
Kari Salminen
0911982954
Converted objectTable from a plain array to a Common::Array. Should help to catch out of bounds access errors that may cause memory corruption.
...
svn-id: r33725
2008-08-09 20:50:10 +00:00
Kari Salminen
3e5e5f5342
Made type 21 & 22 overlays not be flipped (The oxygen gauge looks actually better when it reaches zero this way although in its fully charged state it still does look a bit off. Disassembly seems to agree with not flipping the overlays so I'm going with this one for now).
...
svn-id: r33722
2008-08-09 19:57:46 +00:00
Kari Salminen
0f07592184
Made drawPlainBox's effective width and height always at least one.
...
- Makes oxygen gauge during first arcade sequence visible as it gave drawPlainBox a height of zero.
Made type 21 overlays be drawn as type 22 (Filled rectangle).
- For an example the oxygen gauge during the first arcade sequence is a type 21 overlay.
Flipped type 21 & 22 overlays as it looks correct for the oxygen gauge.
These features are quite WIP, they need testing to see if they're correct.
svn-id: r33721
2008-08-09 19:47:05 +00:00
Kari Salminen
e02f94d392
Added preliminary version of drawing type 22 overlays (Such overlays are added with opcode 0xA4 (o2_loadMask22) and removed with opcode 0xA5 (o2_unloadMask22)). Things might be wrong so needs testing! WIP!
...
svn-id: r33713
2008-08-09 16:07:08 +00:00
Kari Salminen
80648431d9
Added updating of global variable var5 to Operation Stealth's renderOverlay function's type 20 overlay case (Previously var5 wasn't updated anywhere!). Also added a lower bound for var5's value into a comparison (Previously only the upper bound was tested for).
...
svn-id: r33712
2008-08-09 15:17:32 +00:00
Kari Salminen
36e6bb27b5
Removing moving with keys qweasdzxc for now because they messed with savegame name typing. One can move with the cursor keys anyway.
...
svn-id: r33710
2008-08-09 10:52:48 +00:00
Kari Salminen
8e33f1530c
Small cleanup: Renamed rol to rolByte and made it handle all cases.
...
svn-id: r33708
2008-08-09 10:44:12 +00:00
Kari Salminen
c0701bfcb6
Added detection entry for the Sony published CD version of Future Wars.
...
Also added decrypting of the crypted AUTO00.PRC for this particular version.
Now this version should work but no CD audio support for it yet though.
svn-id: r33703
2008-08-08 18:28:13 +00:00
Kari Salminen
70760a77fd
Partially fix Adlib volume setting in Cine (Now uses music volume for Adlib volume, previously always played with full volume. Doesn't differentiate between playing sound effects and music!).
...
svn-id: r33700
2008-08-08 14:46:19 +00:00
Kari Salminen
5cb08bd1e5
Added basic moving using keyboard (Only works in Operation Stealth at the moment):
...
- Should make it possible to complete the first arcade sequence legitimately
Renamed input variables (Their names were mixed up between Future Wars and Operation Stealth):
- Future Wars's inputVar1 -> egoMovedWithKeyboard
- Future Wars's inputVar2 -> xMoveKeyb
- Future Wars's inputVar3 -> yMoveKeyb
- Operation Stealth's inputVar0 -> xMoveKeyb
- Operation Stealth's inputVar1 -> yMoveKeyb
svn-id: r33698
2008-08-08 13:30:01 +00:00
Kari Salminen
092d7224b9
Implemented game speed changing by pressing - or + to e.g. ease testing.
...
svn-id: r33689
2008-08-07 21:46:56 +00:00
Kari Salminen
da84a54694
Added precautionary tests to background scrolling function in Operation Stealth to avoid possible memory corruptions.
...
svn-id: r33688
2008-08-07 19:46:06 +00:00
Kari Salminen
853f4dbbe0
Made drawPlainBox handle border cases so it won't corrupt memory so easily. This may help with some memory corruption issues when for an example trying to draw the player's command string out of screen.
...
svn-id: r33687
2008-08-07 19:31:12 +00:00
Kari Salminen
b8bfd5d04f
Fix for popup boxes sometimes blocking animation when they shouldn't in Operation Stealth:
...
- Made waitForPlayerClick updating more like in the original.
- Moved removeMessages to after the frame drawing in main loop hoping to be more like the original.
- Added an additional test to Operation Stealth's implementation of overlay type 2 drawing.
- Added an additional parameter incrementing and testing to Operation Stealth's removeMessages.
Hopefully this won't cause any regressions in Future Wars!
svn-id: r33686
2008-08-07 19:04:19 +00:00
Kari Salminen
92eec1b905
HACK: In Operation Stealth after the first arcade sequence jump player's position to avoid getting stuck.
...
The player's position is changed only by *one* pixel but it helps
and makes it possible to carry on with the game (Previously the player was totally stuck).
svn-id: r33673
2008-08-06 23:12:25 +00:00
Kari Salminen
f5e9a3e185
Tiny comment update to loadCt-opcodes: Load collision table data.
...
svn-id: r33670
2008-08-06 20:58:02 +00:00
Kari Salminen
a10753e2a1
Renamed page3Raw to collisionPage so it's more apparent what it does.
...
svn-id: r33669
2008-08-06 20:54:38 +00:00
Kari Salminen
66fc0d6a25
Add 320x200 screen bounds checking to Operation Stealth's checkCollision function.
...
Fixes teleporting bug when getting out of the water after first arcade sequence.
The player previously got teleported to the beach near the hotel. Now it doesn't happen.
The player is still caught motionless and can't move after this fix though...
svn-id: r33668
2008-08-06 20:47:59 +00:00
Kari Salminen
a944497d75
HACK: Force oxygen to maximum during Operation Stealth's first arcade sequence.
...
This way the arcade sequence is completable now.
This hack should be removed later and the first
arcade sequence be made properly playable!
svn-id: r33667
2008-08-06 20:41:53 +00:00
Kari Salminen
df1246bf9f
Workaround for missing player character animation when exiting the airport in Santa Paragua in at least the 256 color PC version of Operation Stealth.
...
svn-id: r33644
2008-08-05 21:20:11 +00:00
Kari Salminen
f3ecdaa6fe
Made rest of resource loading functions used in loadResource return -1 on error.
...
This fixed a crash in Operation Stealth when walking out of the airport
(Some file couldn't be opened and the game crashed because of that.
Now it doesn't crash but handles the missing file gracefully).
svn-id: r33643
2008-08-05 19:30:16 +00:00
Kari Salminen
9417066641
Add detection entry for a previously unrecognized 16 color PC version of Operation Stealth (The John Glames variant).
...
svn-id: r33642
2008-08-05 18:17:55 +00:00
Kari Salminen
966b5eb94e
Fix prompt updating regression introduced in r32257:
...
Previously prompt didn't get updated all the time,
like e.g. when selecting EXAMINE and moving the
cursor over to DOOR and then moving the cursor to
a place where there was no selectable object. The
prompt would've still shown "EXAMINE DOOR", now
it shows just "EXAMINE" which is correct AFAIK.
svn-id: r33637
2008-08-05 12:58:23 +00:00
Kari Salminen
99addb709c
Fix for misplaced objects in mouse object selection (Operation Stealth specific).
...
- Implemented Operation Stealth specific part of getObjectUnderCursor
which handles negative frame values.
- Fixed a test case (Should test for ydif <= 0 although tested for ydif < 0).
- Made part-value be anded with 0x0F in a test case to comply with disassembly.
- Added comment about a test case which isn't present in the disassembly.
Removing it makes things crash sometimes so letting it be.
svn-id: r33620
2008-08-04 19:32:52 +00:00
Kari Salminen
efd4a7a72f
Made loadResourcesFromSave internally use the loadResource-function.
...
Fixes Operation Stealth savegame loading! HURRAH! FINALLY!
svn-id: r33530
2008-08-02 15:59:38 +00:00
Kari Salminen
6307c46604
- Combined loadAbs and loadResource into one function.
...
- Made resource loading functions (loadSpl, loadMsk etc)
return the number of the animDataTable entry right after
the loaded data.
- Made resource loading functions always load multiframe
data into directly sequential animDataTable entries
(Hopefully this won't break anything).
svn-id: r33529
2008-08-02 15:47:25 +00:00
Kari Salminen
81cb493158
Debug printing a couple more relevant variables in addAni.
...
svn-id: r33446
2008-07-30 11:36:14 +00:00
Kari Salminen
4210defa29
Added some debug aids related to addAni and the processSeqList crashing.
...
svn-id: r33444
2008-07-30 11:03:52 +00:00
Max Horn
0be985ce83
Changed class File (and derived classes) to only support read-only access; added a new class DumpFile for writing
...
svn-id: r33412
2008-07-29 16:09:10 +00:00
Kari Salminen
c9051fcfbd
Make sure processSeqList and purgeSeqList are only called in the main loop when running Operation Stealth. Mostly a precaution as the seqList should be totally empty when running Future Wars as it doesn't use it.
...
svn-id: r33410
2008-07-29 13:46:42 +00:00