FULLPIPE: Implement sceneHandler04_sub1()

This commit is contained in:
Eugene Sandulenko 2013-11-23 21:00:58 -05:00
parent 14cb73789e
commit 6a2ee82699
4 changed files with 32 additions and 1 deletions

View file

@ -185,6 +185,19 @@ bool BehaviorManager::setBehaviorEnabled(StaticANIObject *obj, int aniId, int qu
return true; return true;
} }
void BehaviorManager::setFlagByStaticAniObject(StaticANIObject *ani, int flag) {
for (uint i = 0; i < _behaviors.size(); i++) {
BehaviorInfo *beh = _behaviors[i];
if (ani == beh->_ani) {
if (flag)
beh->_flags &= 0xfe;
else
beh->_flags |= 1;
}
}
}
void BehaviorInfo::clear() { void BehaviorInfo::clear() {
_ani = 0; _ani = 0;
_staticsId = 0; _staticsId = 0;

View file

@ -79,6 +79,8 @@ class BehaviorManager : public CObject {
void updateStaticAniBehavior(StaticANIObject *ani, int delay, BehaviorEntry *beh); void updateStaticAniBehavior(StaticANIObject *ani, int delay, BehaviorEntry *beh);
bool setBehaviorEnabled(StaticANIObject *obj, int aniId, int quId, int flag); bool setBehaviorEnabled(StaticANIObject *obj, int aniId, int quId, int flag);
void setFlagByStaticAniObject(StaticANIObject *ani, int flag);
}; };
} // End of namespace Fullpipe } // End of namespace Fullpipe

View file

@ -189,6 +189,7 @@ namespace Fullpipe {
#define QU_PNK_CLICK 550 #define QU_PNK_CLICK 550
#define QU_SC3_ENTERLIFT 2779 #define QU_SC3_ENTERLIFT 2779
#define QU_SC3_EXITLIFT 2808 #define QU_SC3_EXITLIFT 2808
#define QU_SC4_MANFROMBOTTLE 2851
#define SC_1 301 #define SC_1 301
#define SC_10 653 #define SC_10 653
#define SC_11 654 #define SC_11 654
@ -276,6 +277,7 @@ namespace Fullpipe {
#define ST_LBN_9P 2778 #define ST_LBN_9P 2778
#define ST_MAN_EMPTY 476 #define ST_MAN_EMPTY 476
#define ST_MAN_RIGHT 325 #define ST_MAN_RIGHT 325
#define ST_MAN_SIT 1164
#define TrubaDown 697 #define TrubaDown 697
#define TrubaLeft 474 #define TrubaLeft 474
#define TrubaRight 696 #define TrubaRight 696

View file

@ -289,7 +289,21 @@ void sceneHandler04_stopSound() {
} }
void sceneHandler04_sub1(ExCommand *ex) { void sceneHandler04_sub1(ExCommand *ex) {
warning("sceneHandler04_sub1()"); g_fullpipe->_aniMan->changeStatics2(ST_MAN_SIT);
MessageQueue *mq = new MessageQueue(g_fullpipe->_currentScene->getMessageQueueById(QU_SC4_MANFROMBOTTLE), 0, 0);
if (ex) {
ExCommand *newex = new ExCommand(ex);
mq->_exCommands.push_back(newex);
}
mq->_flags |= 1;
mq->chain(0);
g_vars->scene04_var10 = 0;
g_fullpipe->_behaviorManager->setFlagByStaticAniObject(g_fullpipe->_aniMan, 1);
} }
void sceneHandler04_sub3() { void sceneHandler04_sub3() {