mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-23 11:04:44 +00:00
SUPERNOVA2: Add partialy implemented checkout room
This commit is contained in:
parent
856b387641
commit
93561220b7
@ -81,7 +81,7 @@ enum Action {
|
||||
|
||||
enum RoomId {
|
||||
INTRO,AIRPORT,TAXISTAND,STREET,GAMES,CABIN,KIOSK,
|
||||
CULTURE_PALACE,CASHBOX,CITY1,CITY2,ELEVATOR,APARTMENT,SHIP,
|
||||
CULTURE_PALACE,CHECKOUT,CITY1,CITY2,ELEVATOR,APARTMENT,SHIP,
|
||||
|
||||
PYRAMID,PYR_ENTRANCE,UPSTAIRS1,DOWNSTAIRS1,
|
||||
BOTTOM_RIGHT_DOOR,BOTTOM_LEFT_DOOR,UPSTAIRS2,DOWNSTAIRS2,
|
||||
@ -209,8 +209,8 @@ kString395, kString396, kString397, kString398, kString399,
|
||||
kString400, kString401, kString402, kString403, kString404,
|
||||
kString405, kString406, kString407, kString408, kString409,
|
||||
kString410, kString411, kString412, kString413, kString414,
|
||||
kString415, kString416, kString417, kString418, kString419,
|
||||
kString420, kString421, kString422, kString423, kString424,
|
||||
kString415, kStringAtMusicContest, kStringNoImitation, kStringGoodJoke, kStringCommon,
|
||||
kStringIWillProof, kStringIWillPerform, kString422, kString423, kString424,
|
||||
kString425, kString426, kString427, kString428, kString429,
|
||||
kString430, kString431, kString432, kString433, kString434,
|
||||
kString435, kString436, kString437, kString438, kString439,
|
||||
@ -236,7 +236,7 @@ kString530, kString531, kString532, kString533, kString534,
|
||||
kString535, kString536, kString537, kString538, kString539,
|
||||
kString540, kString541, kString542, kString543, kString544,
|
||||
kString545, kString546, kStringFascinating, kStringTaxis, kStringTaxisDescription,
|
||||
kStringAxacussan, kStringParticipationCard, kString552, kString553, kString554,
|
||||
kStringAxacussan, kStringParticipationCard, kStringAxacussian, kString553, kString554,
|
||||
kString555, kString556, kString557, kString558, kString559,
|
||||
kString560, kString561, kString562, kString563, kString564,
|
||||
kString565, kString566, kString567, kString568, kString569,
|
||||
@ -249,7 +249,7 @@ kStringIntroTV3, kStringIntroTV4, kStringIntroTV5, kStringIntroTV6, kStringIntro
|
||||
kStringIntroTV8, kStringIntroTV9, kStringIntroTV10, kStringIntroTV11, kStringIntroTV12,
|
||||
kStringIntroTV13, kStringIntroTV14, kStringIntroTV15, kStringIntroTV16, kStringIntro9,
|
||||
kStringIntro10, kStringIntro11, kStringIntro12, kStringIntro13, kStringIntro14,
|
||||
kStringDialogSeparator, kStringForMusicConcert
|
||||
kStringDialogSeparator
|
||||
};
|
||||
|
||||
ObjectType operator|(ObjectType a, ObjectType b);
|
||||
|
@ -1003,7 +1003,7 @@ CulturePalace::CulturePalace(Supernova2Engine *vm, GameManager *gm) {
|
||||
_var2 = false;
|
||||
_var3 = false;
|
||||
|
||||
_objectState[0] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 1, 1, 0, CASHBOX, 6);
|
||||
_objectState[0] = Object(_id, kStringEntrance, kStringDefaultDescription, NULLOBJECT, EXIT, 1, 1, 0, CHECKOUT, 6);
|
||||
_objectState[1] = Object(_id, kStringCulturePalace, kStringFascinating, NULLOBJECT, NULLTYPE, 0, 0, 0);
|
||||
_objectState[2] = Object(_id, kStringTaxis, kStringTaxisDescription, NULLOBJECT, NULLTYPE, 3, 3, 0);
|
||||
_objectState[3] = Object(_id, kStringAxacussan, kStringDefaultDescription, AXACUSSER, TALK, 4, 4, 0);
|
||||
@ -1041,11 +1041,10 @@ void CulturePalace::notEnoughMoney() {
|
||||
}
|
||||
|
||||
bool CulturePalace::interact(Action verb, Object &obj1, Object &obj2) {
|
||||
static StringId dial1[4] = {
|
||||
static StringId dial1[3] = {
|
||||
kStringHorstHummel,
|
||||
kStringNiceWeather,
|
||||
kStringTellTicket,
|
||||
kStringForMusicConcert
|
||||
};
|
||||
static byte dials1[] = {1, 1, 2};
|
||||
|
||||
@ -1133,7 +1132,7 @@ bool CulturePalace::interact(Action verb, Object &obj1, Object &obj2) {
|
||||
_gm->reply(kStringIdiot, 0, 0);
|
||||
_var2 = false;
|
||||
_var3 = true;
|
||||
_gm->_rooms[CASHBOX]->addSentence(1,1);
|
||||
_gm->_rooms[CHECKOUT]->addSentence(1,1);
|
||||
_gm->drawStatus();
|
||||
_gm->drawInventory();
|
||||
_gm->drawMapExits();
|
||||
@ -1155,23 +1154,45 @@ bool CulturePalace::interact(Action verb, Object &obj1, Object &obj2) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Cashbox::Cashbox(Supernova2Engine *vm, GameManager *gm) {
|
||||
Checkout::Checkout(Supernova2Engine *vm, GameManager *gm) {
|
||||
_vm = vm;
|
||||
_gm = gm;
|
||||
|
||||
_fileNumber = 6;
|
||||
_id = CASHBOX;
|
||||
_fileNumber = 21;
|
||||
_id = CHECKOUT;
|
||||
_shown[0] = kShownTrue;
|
||||
|
||||
_var1 = false;
|
||||
_var2 = false;
|
||||
_var3 = false;
|
||||
|
||||
_objectState[0] = Object(_id, kStringEntrance, kStringDefaultDescription, KP_ENTRANCE, EXIT, 0, 0, 0, NULLROOM, 3);
|
||||
_objectState[1] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CULTURE_PALACE, 22);
|
||||
_objectState[2] = Object(_id, kStringAxacussian, kStringDefaultDescription, AXACUSSER, TALK, 1, 1, 0);
|
||||
}
|
||||
|
||||
void Cashbox::onEntrance() {
|
||||
void Checkout::onEntrance() {
|
||||
if (!_var3) {
|
||||
_var3 = true;
|
||||
_gm->reply(kStringAtMusicContest, 1, 1 + 128);
|
||||
_gm->say(kStringNoImitation);
|
||||
_gm->reply(kStringGoodJoke, 1, 1 + 128);
|
||||
_gm->say(kStringIAmHorstHummel);
|
||||
_gm->reply(kStringCommon, 1, 1 + 128);
|
||||
_gm->say(kStringIWillProof);
|
||||
_gm->say(kStringIWillPerform);
|
||||
_gm->drawStatus();
|
||||
_gm->drawInventory();
|
||||
_gm->drawMapExits();
|
||||
_gm->drawCommandBox();
|
||||
}
|
||||
setRoomSeen(true);
|
||||
}
|
||||
|
||||
void Cashbox::animation() {
|
||||
void Checkout::animation() {
|
||||
}
|
||||
|
||||
bool Cashbox::interact(Action verb, Object &obj1, Object &obj2) {
|
||||
bool Checkout::interact(Action verb, Object &obj1, Object &obj2) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -166,14 +166,17 @@ private:
|
||||
bool _var3;
|
||||
};
|
||||
|
||||
class Cashbox : public Room {
|
||||
class Checkout : public Room {
|
||||
public:
|
||||
Cashbox(Supernova2Engine *vm, GameManager *gm);
|
||||
Checkout(Supernova2Engine *vm, GameManager *gm);
|
||||
virtual void onEntrance();
|
||||
virtual void animation();
|
||||
virtual bool interact(Action verb, Object &obj1, Object &obj2);
|
||||
|
||||
private:
|
||||
bool _var1;
|
||||
bool _var2;
|
||||
bool _var3;
|
||||
};
|
||||
|
||||
class City1 : public Room {
|
||||
|
@ -237,7 +237,7 @@ void GameManager::destroyRooms() {
|
||||
delete _rooms[CABIN];
|
||||
delete _rooms[KIOSK];
|
||||
delete _rooms[CULTURE_PALACE];
|
||||
delete _rooms[CASHBOX];
|
||||
delete _rooms[CHECKOUT];
|
||||
delete _rooms[CITY1];
|
||||
delete _rooms[CITY2];
|
||||
delete _rooms[ELEVATOR];
|
||||
@ -353,7 +353,7 @@ void GameManager::initRooms() {
|
||||
_rooms[CABIN] = new Cabin(_vm, this);
|
||||
_rooms[KIOSK] = new Kiosk(_vm, this);
|
||||
_rooms[CULTURE_PALACE] = new CulturePalace(_vm, this);
|
||||
_rooms[CASHBOX] = new Cashbox(_vm, this);
|
||||
_rooms[CHECKOUT] = new Checkout(_vm, this);
|
||||
_rooms[CITY1] = new City1(_vm, this);
|
||||
_rooms[CITY2] = new City2(_vm, this);
|
||||
_rooms[ELEVATOR] = new Elevator(_vm, this);
|
||||
|
Loading…
x
Reference in New Issue
Block a user