Rewrote some more room logic

svn-id: r32400
This commit is contained in:
Filippos Karapetis 2008-05-30 14:58:09 +00:00
parent 1da231a34e
commit 0e92f8ffa9

View file

@ -43,7 +43,7 @@ struct RoomTalkAction {
// Note: default action needs to be LAST for each group
// of actions with the same number
RoomTalkAction room0Actions[] = {
// num action object speech
// num action object speech
{ 1, kVerbLook, -1, 54 },
{ 1, kVerbMove, -1, 19 },
{ 1, kVerbPick, -1, 11 },
@ -51,12 +51,12 @@ RoomTalkAction room0Actions[] = {
{ 1, kVerbClose, -1, 9 },
{ 1, kVerbTalk, -1, 16 },
{ 1, kVerbDefault, -1, 11 },
// -------------------------------
// ----------------------------------
{ 2, kVerbMove, -1, 19 },
{ 2, kVerbOpen, -1, 9 },
{ 2, kVerbClose, -1, 9 },
{ 2, kVerbTalk, -1, 16 },
// -------------------------------
// ----------------------------------
{ 3, kVerbLook, -1, 316 },
{ 3, kVerbMove, -1, 317 },
{ 3, kVerbPick, -1, 318 },
@ -64,16 +64,16 @@ RoomTalkAction room0Actions[] = {
{ 3, kVerbClose, -1, 319 },
{ 3, kVerbTalk, -1, 320 },
{ 3, kVerbDefault, -1, 318 },
// -------------------------------
// ----------------------------------
{ 4, kVerbMove, -1, 19 },
{ 4, kVerbOpen, -1, 9 },
{ 4, kVerbClose, -1, 9 },
{ 4, kVerbTalk, -1, 16 },
// -------------------------------
// ----------------------------------
{ 5, kVerbOpen, -1, 9 },
{ 5, kVerbClose, -1, 9 },
{ 5, kVerbTalk, -1, 16 },
// -------------------------------
// ----------------------------------
{ 6, kVerbMove, -1, 19 },
{ 6, kVerbOpen, -1, 9 },
{ 6, kVerbClose, -1, 9 },
@ -81,112 +81,128 @@ RoomTalkAction room0Actions[] = {
};
RoomTalkAction room1Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbPick, 118, 5 },
{ -1, kVerbOpen, 118, 3 },
{ -1, kVerbClose, 118, 4 },
{ -1, kVerbTalk, 118, 6 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 119, 8 },
{ -1, kVerbMove, 119, 13 },
{ -1, kVerbClose, 119, 10 },
{ -1, kVerbTalk, 119, 12 },
// -------------------------------
// ----------------------------------
{ -1, kVerbMove, 120, 13 },
{ -1, kVerbOpen, 120, 18 },
{ -1, kVerbTalk, 120, 15 }
};
RoomTalkAction room3Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbLook, 129, 21 },
{ -1, kVerbPick, 129, 5 },
{ -1, kVerbMove, 129, 24 },
{ -1, kVerbOpen, 129, 22 },
{ -1, kVerbClose, 129, 10 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 131, 27 },
{ -1, kVerbPick, 131, 5 },
{ -1, kVerbMove, 131, 24 },
{ -1, kVerbOpen, 131, 22 },
{ -1, kVerbClose, 131, 10 },
{ -1, kVerbTalk, 131, 23 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 132, 28 },
{ -1, kVerbPick, 132, 5 },
{ -1, kVerbMove, 132, 24 },
{ -1, kVerbOpen, 132, 22 },
{ -1, kVerbClose, 132, 10 },
{ -1, kVerbTalk, 132, 23 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 133, 321 },
{ -1, kVerbPick, 133, 31 },
{ -1, kVerbMove, 133, 34 },
{ -1, kVerbOpen, 133, 30 },
{ -1, kVerbClose, 133, 10 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 166, 55 },
{ -1, kVerbPick, 166, 7 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 211, 184 }
};
RoomTalkAction room4Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbLook, 189, 182 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 207, 175 },
{ -1, kVerbTalk, 207, 176 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 208, 177 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 209, 179 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 210, 180 },
{ -1, kVerbOpen, 210, 181 }
};
RoomTalkAction room5Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbMove, 136, 13 },
{ -1, kVerbOpen, 136, 18 },
{ -1, kVerbTalk, 136, 15 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 212, 187 },
{ -1, kVerbTalk, 212, 188 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 213, 189 },
{ -1, kVerbOpen, 213, 190 }
};
RoomTalkAction room6Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbPick, 144, 43 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 138, 35 },
{ -1, kVerbTalk, 138, 6 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 143, 37 },
{ -1, kVerbPick, 143, 7 },
{ -1, kVerbMove, 143, 7 },
{ -1, kVerbTalk, 143, 38 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 139, 36 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 140, 147 }
};
RoomTalkAction room12Actions[] = {
// num action object speech
// num action object speech
{ -1, kVerbLook, 154, 329 },
{ -1, kVerbTalk, 154, 330 },
// -------------------------------
// ----------------------------------
{ -1, kVerbMove, 155, 48 },
{ -1, kVerbTalk, 155, 331 },
// -------------------------------
// ----------------------------------
{ -1, kVerbLook, 156, 35 },
{ -1, kVerbMove, 156, 48 },
{ -1, kVerbTalk, 156, 50 },
{ -1, kVerbTalk, 156, 50 }
};
RoomTalkAction room14Actions[] = {
// num action object speech
{ -1, kVerbLook, 200, 165 },
// ----------------------------------
{ -1, kVerbLook, 201, 166 },
// ----------------------------------
{ -1, kVerbLook, 202, 167 },
// ----------------------------------
{ -1, kVerbLook, 203, 168 },
{ -1, kVerbPick, 203, 170 },
{ -1, kVerbMove, 203, 170 },
{ -1, kVerbTalk, 203, 169 },
// ----------------------------------
{ -1, kVerbLook, 204, 171 }
};
bool DrasculaEngine::roomParse(RoomTalkAction* roomActions, int fl) {
@ -505,6 +521,9 @@ bool DrasculaEngine::room_13(int fl) {
}
void DrasculaEngine::room_14(int fl) {
if (roomParse(room14Actions, fl))
return;
if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 0)
animation_12_2();
else if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 1)
@ -517,22 +536,6 @@ void DrasculaEngine::room_14(int fl) {
animation_36_2();
else if (pickedObject == kVerbTalk && fl == 53)
animation_13_2();
else if (pickedObject == kVerbLook && fl == 200)
talk(165);
else if (pickedObject == kVerbLook && fl == 201)
talk(166);
else if (pickedObject == kVerbLook && fl == 202)
talk(167);
else if (pickedObject == kVerbLook && fl == 203)
talk(168);
else if (pickedObject == kVerbPick && fl == 203)
talk(170);
else if (pickedObject == kVerbMove && fl == 203)
talk(170);
else if (pickedObject == kVerbTalk && fl == 203)
talk(169);
else if (pickedObject == kVerbLook && fl == 204)
talk(171);
else
hasAnswer = 0;
}