TSAGE: Implemented Blue Force scene 355 - Future Wave exterior

This commit is contained in:
Paul Gilbert 2011-09-20 22:06:58 +10:00
parent e663e7874e
commit 12b553c084
6 changed files with 1417 additions and 3 deletions

View File

@ -106,7 +106,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
// Marina, Outside Boat
return new Scene350();
case 355:
error("Scene group 3 not implemented");
// Future Wave Exterior
return new Scene355();
case 360:
// Future Wave Interior
return new Scene360();

View File

@ -93,6 +93,19 @@ public:
virtual void signal();
};
class SceneHotspotExt: public SceneHotspot {
public:
int _state;
SceneHotspotExt() { _state = 0; }
virtual Common::String getClassName() { return "SceneHotspotExt"; }
virtual void synchronize(Serializer &s) {
SceneHotspot::synchronize(s);
s.syncAsSint16LE(_state);
}
};
class SceneItemType2: public SceneHotspot {
public:
virtual void startMove(SceneObject *sceneObj, va_list va);

File diff suppressed because it is too large Load Diff

View File

@ -490,6 +490,122 @@ public:
virtual void checkGun();
};
class Scene355: public PalettedScene {
/* Objects */
class Object2: public NamedObject {
public:
int _v1, _v2, _v3;
Object2() { _v1 = _v2 = _v3 = 0; }
virtual Common::String getClassName() { return "Scene355_Object2"; }
virtual void synchronize(Serializer &s);
virtual bool startAction(CursorType action, Event &event);
};
class Object3: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Object4: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Object5: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Object6: public NamedObjectExt {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Object7: public NamedObjectExt {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Object8: public NamedObject {
public:
virtual bool startAction(CursorType action, Event &event);
};
/* Items */
class Item1: public SceneHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item2: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item3: public SceneHotspotExt {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item4: public SceneHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item5: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item11: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
class Item12: public NamedHotspot {
public:
virtual bool startAction(CursorType action, Event &event);
};
/* Actions */
class Action1: public Action {
public:
virtual void signal();
};
class Action2: public Action {
public:
virtual void signal();
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerHarrison _harrisonSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerGreen _greenSpeaker;
NamedObject _object1;
Object2 _object2;
Object3 _object3;
Object4 _object4;
Object5 _object5;
Object6 _object6;
Object7 _object7;
Object8 _object8;
NamedObject _object9, _object10, _object11;
Item1 _item1;
Item2 _item2;
Item3 _item3;
Item4 _item4;
Item5 _item5;
NamedHotspot _item6, _item7, _item8;
NamedHotspot _item9, _item10;
Item11 _item11;
Item12 _item12;
ASoundExt _sound1, _sound2, _sound3;
Action1 _action1;
Action2 _action2;
int _fieldB0E, _fieldB10;
Scene355();
virtual void synchronize(Serializer &s);
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
virtual void process(Event &event);
virtual void dispatch();
void proc1(int v1, int v2);
};
class Scene360: public SceneExt {
/* Objects */
class SlidingDoor: public NamedObject {
@ -540,8 +656,6 @@ class Scene360: public SceneExt {
public:
virtual void signal();
};
private:
void setup();
public:
SequenceManager _sequenceManager1, _sequenceManager2;
SpeakerGameText _gameTextSpeaker;

View File

@ -193,6 +193,7 @@ void BlueForceGlobals::synchronize(Serializer &s) {
s.syncAsSint16LE(_v4CEA4);
s.syncAsSint16LE(_v4CEB4);
s.syncAsSint16LE(_v4CEB6);
s.syncAsSint16LE(_v4CEC2);
s.syncAsSint16LE(_deziTopic);
s.syncAsSint16LE(_deathReason);
s.syncAsSint16LE(_driveFromScene);
@ -231,6 +232,7 @@ void BlueForceGlobals::reset() {
_v4CEA4 = 0;
_v4CEB4 = 0;
_v4CEB6 = 0;
_v4CEC2 = 0;
_deziTopic = 0;
_deathReason = 0;
_v501FC = 0;

View File

@ -171,6 +171,7 @@ public:
int _v4CEA4;
int _v4CEB4;
int _v4CEB6;
int _v4CEC2;
int _deziTopic;
int _deathReason;
int _driveFromScene;