On Thu, 24 Jan 2008 17:36:29 +0000
James Urquhart <[EMAIL PROTECTED]> wrote:
> Hey Alban, G33k,
>
> I have attached two patches to clean up OpenQuest. For the first
> (openquest_fix1.diff):
> - Intro is now skippable
> - Missing preposition added for scanner and batteries
> - Redundant battery objects removed
> - You can no longer give every item to an actor
> - Added cutscenes where necessary (some skippable, others not)
> - MouseWatch script is now killed after the outro to prevent further
> mousemove interaction
It look good in general, although the patch is a bit large for an easy
review. In such case it is much better to do a patch for each point in
the list. That make reading the patch a lot simpler as one doesn't have
to first find out what each hunk is about. While on the subject of
patch, it is also good practice to avoid large reidentation in
functional patch. Again it make understanding the patch and finding
eventual mistake a lot easier. The reindentation can then be done in
another patch (with only the reindentation).
> The other (openquest_verbs.diff) is entirely optional, but it alters
> "showVerbs" to use "saveVerbs" and "restoreVerbs" in order to
> eliminate the use of the array and multiple loops.
That look good too. I would apply both, G33k?
> Sadly there was one nagging issue i've not quite figured out yet.
> During the office intro the characters speech appears in the top left.
I found the pb last night. Basicaly scumm have 2 "string slot", the
first one is used for actor talk and the print() function. The second
one is used by the printCursor functions. When the engine start the
slots are initialized with every fields (including the overhead flag)
at 0. So one have to call:
printBegin();
printOverhead();
printEnd();
somewhere at the begining to initialize the "string slot" correctly.
This is also called before starting any sentence, that's why the text
was placed correctly after the intro.
BTW this "string slot" mechanism imply that you can't have 2 actors
talking at the same time.
> Out of curiously i also tried it out in a DOTT interpreter. Problems
> were as follows:
>
> - The stopTalking opcode wasn't implemented. Eeek!
There is perhaps another way to get the same result.
> - Characters didn't always face each other when talking
Strange, it will probably need some deeper investigation.
> - The letter "P" took the place of empty inventory slots
They probably display some uninitialized memory or something like this.
> - Actor names weren't displayed on mouseover
That probably mean that referencing names in strings only work for
objects. That could be worked around by using the actor's object
name instead. It could be worse it to look at how actors name are
implemented in DOTT, but that's probably not easy.
Otherwise, working on top of these patch I improved the dialogs
a bit:
- Have the "extra" questions appear before the dialog "exit".
- Make some questions diseaper once they were asked.
- In carol's dialog, check the translation matrix only once.
I also started adding the sound effect in the outro. imho we should
definitly add all the sound effects, it's not much work and give a
really nice touch. However I can't run the original game, so it would
be nice if someone could post a list of where each sound effect is used.
The only missing thing would then be the music. In the original
OpenQuest data it's in ogg/vorbis so that's not really usable
with v6. However I know a few ppl doing electronic music, so I might
find one up to the challenge of writing some gound sounding general midi
tracks :)
I also have a small idea, I'd like to know what you think about it.
Currently there is no way to "win" the game, unless one take control of
the commander. So I would suggest adding more flexibility in the end if
the player control the commander when he shoot the cup down. For
example:
- If the player take the cup as the commander he can then:
- Give it to the ensign -> win as good guy
- Shoot the ensign -> win as a bad guy
- Talk the ensign into joining him to rule the world -> win as ???
- If the player switch back to the ensign when the cup is still on the
floor, the commander should try to pickup the cup, if he manage it
the ensign die and the player "loose"
- If the ensign take the cup in time, the commander try to talk him
into joining him ruling the universe.
- If he refuse, the commander shoot him -> loose as a hero
- If he accept -> win as a coward
Albeu
_______________________________________________
ScummC-general mailing list
[email protected]
https://mail.gna.org/listinfo/scummc-general