Commit Graph

149 Commits

Author SHA1 Message Date
Oystein Eftevaag
f25cb2e735 Uses kyra.dat for GUI strings instead of hardcoding them, which means localized strings are now supported for the menus. Note that the size of the menus are not yet calculated to account for the longer strings in some languages
svn-id: r22105
2006-04-23 14:43:16 +00:00
Johannes Schickel
b756c3e899 Fixes use of textspeed settings if voice+text mode is enabled. (thanks to salty-horse)
svn-id: r21999
2006-04-18 02:08:51 +00:00
Johannes Schickel
0eee3fe591 - Implements copyRegion without transparency checking
- Uses copyRegion without transparency checking to fix credits drawing bugs

svn-id: r21989
2006-04-17 19:52:31 +00:00
Johannes Schickel
2fb0ce8c57 Simplifies credits.txt loading.
svn-id: r21988
2006-04-17 19:39:31 +00:00
Johannes Schickel
592e37accd Fixes bug #1471895 ("KYRA1: Kyragem goes black at the very end").
svn-id: r21987
2006-04-17 19:33:08 +00:00
Torbjörn Andersson
6e2a18e28d Rewrote the timing of the Kyra end credits so that it doesn't matter that the
variables are signed. Otherwise the credits may hang on a slow system.

svn-id: r21986
2006-04-17 19:31:05 +00:00
Oystein Eftevaag
bdd5a25c16 Implements the end credits, and disables fast forwarding in the intro.
svn-id: r21980
2006-04-17 17:39:08 +00:00
Max Horn
ba1b25305e Removed the directory parameter from md5_file
svn-id: r21937
2006-04-16 12:50:39 +00:00
Max Horn
68cb7f52c8 - Renamed ConfigManager::getActiveDomain to getActiveDomainName, and added a new getActiveDomain method that returns a pointer to the actual active *domain*
- Added Engine::_targetName whose value is computed from the name of the active domain
- Removed GameDetector::_targetName, instead code now uses either Engine::_targetName or the name of the active domain
- This in turn allowed for removing usage of GameDetector in many places

svn-id: r21916
2006-04-15 20:36:41 +00:00
Max Horn
1470dadb1d Changed File::open to take a Common::String as file name parameter
svn-id: r21867
2006-04-14 01:48:51 +00:00
Max Horn
cf202049ff Fixing mismatch between format strings and data on some systems
svn-id: r21827
2006-04-12 14:54:12 +00:00
Jonathan Gray
eb3ae7d726 sizeof(void *) != sizeof(int) for a large number of systems.
Fix a lot of debug/error statements that were using %d/%x
for the result of pointer arithmetic.

As C++ apparently has no format string for ptrdiff_t use
%lu/%lx as appropriate.

svn-id: r21824
2006-04-12 10:01:41 +00:00
Max Horn
94e647235f Fix const correctness in Kyra's StaticResource::loadStrings and StaticResource::loadPaletteTable (notice the difference between a pointer pointing to a pointer pointing to const memory, vs. a pointer pointing to a *constant* pointer pointing to const memory)
svn-id: r21708
2006-04-09 00:44:08 +00:00
Eugene Sandulenko
5a2ad04a9e Introduced language EN_ANY used for general English game entries. EN_USA and
EN_GRB should be used for games which have both variants. Currently it is
MM NES and BASS. All other are switched to EN_ANY.

svn-id: r21702
2006-04-08 23:12:56 +00:00
Max Horn
e7a8bb6abf Modified the REGISTER_PLUGIN macro so that it allows (and requires) a trailing semicolon (this helps certain tools to parse our code better)
svn-id: r21689
2006-04-08 12:06:07 +00:00
Max Horn
8cf8acfd63 Renamed various *GameSettings to GameSettings (our namespaces are enough to distinguish them)
svn-id: r21686
2006-04-08 11:21:04 +00:00
Eugene Sandulenko
8fa9bd6728 Removed extra exclamation marks in warning() calls as well.
svn-id: r21608
2006-04-04 22:21:10 +00:00
Eugene Sandulenko
d292c0ec55 Since our debug() adds an exclamation mark at the message end, remove
it in several calls to avoid duplication!!11!

svn-id: r21607
2006-04-04 22:04:51 +00:00
Torbjörn Andersson
80b3f9217d Don't try to copy str to _talkBuffer if str is pointing to _talkBuffer. Apart
from being unnecessary, the result of strcpy() on overlapping memory areas is
unpredictable.

svn-id: r21562
2006-04-02 18:58:07 +00:00
Max Horn
8cdee5a931 Do not #include endian.h in scummsys.h (cuts down deps on endian.h from ~400 to ~250). Many greetings to eriktorbjorn, and have fun recompiling.
svn-id: r21500
2006-03-29 15:59:37 +00:00
Max Horn
0da5fb4c1c Alphabetical build order
svn-id: r21499
2006-03-29 15:51:13 +00:00
Johannes Schickel
c09d1ea520 - Commits heaviliy modifed patch #1459951 ("KYRA: Combining MIDI music with Adlib sfx") (created a wrapper class for two different sound drivers instead of adding a new variable to the KyraEngine class and chaning stuff there)
- Prevents to play track 0 for non mt-32 midi devices (got ugly sound output with windows midi)

svn-id: r21479
2006-03-28 15:15:36 +00:00
Max Horn
9f93e5bb81 Renamed various container isEmpty() methods to empty() to match STL conventions
svn-id: r21472
2006-03-28 09:42:54 +00:00
Johannes Schickel
518c7b871f Comments out unneeded code in enterNewScene (only used for cd audio version).
Fixes bug with stopping pegasus music before the animation finished.

svn-id: r21469
2006-03-27 18:20:19 +00:00
Torbjörn Andersson
23c692f09f Cleaned up update_playRhythmSection(). It's almost possible to understand what
it's intended to do now.

Renamed _unkOutputByte2 to _vibratoAndAMDepthBits. It's a pretty terrible name,
but that's what it is: the two most significant bits of the Adlib BD register.

Renamed _rhythmSection to _rhythmSectionBits for consistency: It's the five
least significant bits of the Adlib BD register.

(The remaining bit is the rhythm on/off bit. I don't think we store that one in
any variable.)

svn-id: r21463
2006-03-26 22:11:40 +00:00
Torbjörn Andersson
737c52590b I believe that the purpose of updateCallback45() is to add a signed value to a
channel's unsigned tempo. Rewrote the function to make this clearer, and
renamed it update_changeChannelTempo().

svn-id: r21448
2006-03-25 10:11:38 +00:00
Torbjörn Andersson
2c279848d8 More renamings:
unk11 -> durationRandomness

updateCallback12() -> update_setupNoteAndDuration()
updateCallback26() -> update_setupDuration()
updateCallback44() -> update_setDurationRandomness()

svn-id: r21447
2006-03-25 09:55:28 +00:00
Eugene Sandulenko
22042bc637 - Implemented case insensitive file reading. Left old system as a fallback
in case some engine writer decide to do something unwise
- Removed used of ConfMan.getKey("path") in file-related cases, because
  now File class handles that
- Fixed bug in ScummEngine_v80he::o80_getFileSize() where path delimiters
  weren't translated

svn-id: r21443
2006-03-25 04:17:17 +00:00
Andrew Kurushin
212b150b6f Fix MSVC warnings
svn-id: r21440
2006-03-24 18:30:34 +00:00
Torbjörn Andersson
0c0c41d495 Implemented "sound triggers" so that the music does not stop shortly after
entering the castle. I hope this is a fair approximation of how the original
worked. Of course, this led to a couple of more renamings:

_unk5              -> _soundTrigger
updateCallback54() -> update_setSoundTrigger()
snd_setUnk5()      -> snd_getSoundTrigger()      (yes, "get")

At the moment, the only known sound triggers are the ones in the castle. If an
unknown trigger is set, the debugging messages will be really, really noisy. I
don't know if I should consider this a bug or an extremely annoying feature.

svn-id: r21396
2006-03-21 17:17:24 +00:00
Johannes Schickel
9031b27349 Implements cmd_shakeScreen.
svn-id: r21394
2006-03-20 19:01:39 +00:00
Torbjörn Andersson
c506e452f1 Initialise _haveScrollButtons, since Valgrind complained about it.
svn-id: r21392
2006-03-20 17:33:08 +00:00
Oystein Eftevaag
3e9246331e Makes sure Brandon actually dies when he turns to stone in the kyragem room
svn-id: r21379
2006-03-19 08:35:43 +00:00
Oystein Eftevaag
d34d6b17df Fixes a potential problem in the pathfinder where an array could be accessed with a negative value in certain rooms
svn-id: r21378
2006-03-19 07:54:30 +00:00
Oystein Eftevaag
e636a25a33 Adds button press animations to the menu, and resets the cursor when the Dialog of Death pops up. Also, mouse clicks are now registered on button up instead of button down, as in the original
svn-id: r21377
2006-03-19 05:55:26 +00:00
Oystein Eftevaag
544abe3d12 Oops, forgot to change a variable declaration in the last commit
svn-id: r21367
2006-03-18 15:01:08 +00:00
Oystein Eftevaag
74aa771143 Changed 'amiga' keywords to 'isAmiga' in the resource handling code to avoid #define conflicts
svn-id: r21366
2006-03-18 14:55:29 +00:00
Johannes Schickel
f9f2cd2dbe - started to rework static resource loading
- made some function parameters const (to work with new static res code)

svn-id: r21365
2006-03-18 14:43:18 +00:00
Oystein Eftevaag
0f21db8c8e Fixes the color of the quitting dialog text after drinking a potion
svn-id: r21358
2006-03-18 11:22:18 +00:00
Oystein Eftevaag
05ee5cf2bd Extends seq_drinkPotionAnim() so that the color of the flask Brandon
drinks will be correct. Also fixes a bug where an animation
(Brandon ringing the bells) would play too quickly.

svn-id: r21354
2006-03-18 04:41:34 +00:00
Johannes Schickel
0ebebb1176 Fixes animations when brandon turns inivisible/visible.
svn-id: r21348
2006-03-17 20:49:12 +00:00
Johannes Schickel
41b4a6aa7c Fixes bug #1401337 ("KYRA: Platform with pegasi graphics glitch")
svn-id: r21347
2006-03-17 19:39:46 +00:00
Johannes Schickel
bbd1725598 - Fixes bug #1401432 ("KYRA: Brandon graphics glitch when exiting castle catacombs")
- Fixes some sprite redraw bugs introduced with my last commits
- Fixes wsa drawing bug in the cave too

svn-id: r21346
2006-03-17 14:19:18 +00:00
Torbjörn Andersson
4df16b71b8 Oops, I never meant to remove *that* line! Put it back again. (This fixes the
flute sound, and probably other regressions as well.)

svn-id: r21345
2006-03-17 13:13:31 +00:00
Torbjörn Andersson
e36edb1b35 The opcode functions are not allowed to modify their own channel.dataptr
directly. If they want a new data pointer, they have to use the dataptr
parameter. This fixes a subtle bug that would cause the wrong music to play
when getting the quill in Kyra 1.

svn-id: r21344
2006-03-17 12:03:24 +00:00
Torbjörn Andersson
05e0542452 More cleanups and renamings: _sfxSecondByteOfSong -> _sfxPriority
Added some comments on the strange but probably harmless things going on in
playSoundEffect()

svn-id: r21340
2006-03-16 23:22:23 +00:00
Torbjörn Andersson
1d8e206333 Went through callbacks 51, 52 and 53, comparing them to LordHoto's annotated
disassembly. I think they're correct now, and a bit easier to read. My old
comments were wrong, too.

I think they are for manipulating the Adlib rhythm section volumes. I'm not
sure the Kyra music ever uses the Adlib rhythm section.

svn-id: r21339
2006-03-16 20:52:36 +00:00
Torbjörn Andersson
99c34b0377 We have several functions where we need to find the pointer to a program or an
instrument. These are found using the lookup tables in _soundData on offsets 0
and 500 respectively. Added helper functions for that, which makes the code a
lot tidier. Particularly in update_setupRhythmSection(), where it's now much
clearer where it's getting all those "unk" values from.

Use the checkValue() function (which limits the "total level" to its valid
range) for the calculateOpLevel1() and 2() functions as well.

Renamed updateCallback16() to update_waitForEndOfProgram().

svn-id: r21337
2006-03-16 18:53:02 +00:00
Torbjörn Andersson
0182b46679 More renamings:
callbackOutput()   -> setupPrograms()
callbackProcess()  -> executePrograms()
updateCallback3()  -> update_setupProgram()

_unk4              -> _rhythmSection
updateCallback48() -> update_setupRhythmSection()
updateCallback49() -> update_playRhythmSection()
updateCallback50() -> update_removeRhythmSection()

svn-id: r21336
2006-03-16 18:01:14 +00:00
Torbjörn Andersson
8fcb38648d I don't know if it's our bug, or a bug in the original Kyra music driver, but
updateCallback3() would call unkOutput2(9) in at least one case. This is
obviously wrong because it a) reads outside _regOffsets[], and b) writes to
invalid Adlib registers.

Now unkOutput2() has the same safeguards as noteOff() already had, making
callbackOutput() and updateCallback3() even more similar.

svn-id: r21335
2006-03-16 17:39:23 +00:00