aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h720
-rw-r--r--engines/fullpipe/fullpipe.cpp1
-rw-r--r--engines/fullpipe/module.mk4
-rw-r--r--engines/fullpipe/scenes.cpp2
-rw-r--r--engines/fullpipe/scenes.h8
-rw-r--r--engines/fullpipe/scenes/scene16.cpp4
-rw-r--r--engines/fullpipe/scenes/scene22.cpp3
-rw-r--r--engines/fullpipe/scenes/scene25.cpp9
-rw-r--r--engines/fullpipe/scenes/scene28.cpp239
-rw-r--r--engines/hopkins/hopkins.h4
-rw-r--r--engines/neverhood/menumodule.cpp4
-rw-r--r--engines/neverhood/module.cpp2
-rw-r--r--engines/neverhood/palette.cpp13
-rw-r--r--engines/neverhood/palette.h1
-rw-r--r--engines/sci/sound/music.cpp2
15 files changed, 660 insertions, 356 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index e42479d0ec..5edeeb1ec8 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -27,229 +27,28 @@ namespace Fullpipe {
// Common
#define ANI_FLY 4916
-#define MV_FLY_FLY 4917
-#define SND_CMN_060 4921
-#define SND_CMN_061 4922
-#define ST_FLY_FLY 4918
-
-#define ANI_BALLDROP 2685
-#define ANI_BATUTA 737
-#define ANI_BIGBALL 4923
-#define ANI_BIGLUK 909
-#define ANI_BOOT_1 4231
-#define ANI_BUTTON 598
-#define ANI_BUTTON_6 2988
-#define ANI_CLOCK 588
-#define ANI_CLOCK_8 2989
-#define ANI_CORNERSITTER 71
-#define ANI_DOMINO_3 2732
-#define ANI_DADAYASHIK 306
-#define ANI_EGGEATER 334
-#define ANI_EGGIE 4929
-#define ANI_GUM 978
-#define ANI_HAND 601
-#define ANI_HANDLE 622
-#define ANI_HOOLIGAN 808
-#define ANI_IN1MAN 5110
-#define ANI_INV_COIN 875
-#define ANI_INV_EGGAPL 1564
-#define ANI_INV_EGGBOOT 1570
-#define ANI_INV_EGGCOIN 1567
-#define ANI_INV_EGGDOM 1561
-#define ANI_INV_EGGGLS 1573
-#define ANI_INV_HANDLE 893
#define ANI_INV_MAP 5321
-#define ANI_KOZAWKA 495
#define ANI_LIFTBUTTON 2751
-#define ANI_LUKE 803
-#define ANI_MAMASHA 656
-#define ANI_MAMASHA_4 660
#define ANI_MAN 322
-#define ANI_NADUVATEL 944
-#define ANI_NEWBALL 1073
-#define ANI_OTMOROZ 419
-#define ANI_PACHKA 975
-#define ANI_PACHKA2 3008
-#define ANI_PLANK 501
-#define ANI_PLUSMINUS 2938
-#define ANI_SC2_BOX 1020
-#define ANI_SC4_BOOT 1035
-#define ANI_SC4_COIN 690
-#define ANI_SC7_BOX 791
-#define ANI_SPEAKER_4 3275
-#define ANI_SPRING 542
-#define ANI_VMYATS 764
-#define MSG_CLICKBOTTLE 569
-#define MSG_CLICKBUTTON 609
-#define MSG_CLICKPLANK 549
#define MSG_CMN_WINARCADE 4778
#define MSG_DISABLESAVES 5201
#define MSG_ENABLESAVES 5202
#define MSG_HMRKICK_METAL 4764
#define MSG_HMRKICK_STUCCO 4765
-#define MSG_INTR_ENDINTRO 5139
-#define MSG_INTR_GETUPMAN 5135
-#define MSG_INTR_SWITCHTO1 5145
-#define MSG_INTR_SWITCHTO2 5134
-#define MSG_KOZAWRESTART 546
-#define MSG_LIFT_CLICKBUTTON 2780
-#define MSG_LIFT_CLOSEDOOR 5194
-#define MSG_LIFT_EXITLIFT 5187
-#define MSG_LIFT_GO 1065
-#define MSG_LIFT_STARTEXITQUEUE 5186
-#define MSG_LOWERPLANK 540
#define MSG_MANSHADOWSOFF 5196
#define MSG_MANSHADOWSON 5197
-#define MSG_RAISEPLANK 547
-#define MSG_RESTARTGAME 4767
-#define MSG_SC1_SHOWOSK 1019
-#define MSG_SC1_SHOWOSK2 468
-#define MSG_SC1_UTRUBACLICK 1100
-#define MSG_SC2_HIDELADDER 1023
-#define MSG_SC2_LADDERCLICK 1101
-#define MSG_SC2_PUTMANUP 1026
-#define MSG_SC2_SHOWLADDER 1027
-#define MSG_SC3_HIDEDOMINO 3177
-#define MSG_SC3_ONTAKECOIN 5338
-#define MSG_SC3_RELEASEEGG 2681
-#define MSG_SC3_TAKEEGG 1583
-#define MSG_SC3_TESTFAT 1582
-#define MSG_SC3_UTRUBACLICK 1103
-#define MSG_SC4_COINOUT 2895
-#define MSG_SC4_COINPUT 1032
-#define MSG_SC4_CLICKLADDER 1439
-#define MSG_SC4_DROPBOTTLE 2896
-#define MSG_SC4_HANDOVER 2960
-#define MSG_SC4_HIDEBOOT 4563
-#define MSG_SC4_KOZAWFALL 2858
-#define MSG_SC4_MANFROMBOTTLE 2854
-#define MSG_SC4_MANTOBOTTLE 2852
-#define MSG_SC5_BGRSOUNDOFF 5315
-#define MSG_SC5_BGRSOUNDON 5314
-#define MSG_SC5_HANDLEDOWN 916
-#define MSG_SC5_HANDLEUP 915
-#define MSG_SC5_HIDEHANDLE 917
-#define MSG_SC5_MAKEMANFLIGHT 1136
-#define MSG_SC5_MAKEOTMFEEDBACK 1169
-#define MSG_SC5_SHOWHANDLE 918
-#define MSG_SC5_TESTLUK 914
-#define MSG_SC6_BTNPUSH 1017
-#define MSG_SC6_ENABLEDROPS 687
-#define MSG_SC6_INSTHANDLE 1012
-#define MSG_SC6_JUMPBK 2900
-#define MSG_SC6_JUMPFW 2901
-#define MSG_SC6_RESTORESCROLL 2906
-#define MSG_SC6_SHOWNEXTBALL 790
-#define MSG_SC6_STARTDROPS 2897
-#define MSG_SC6_TAKEBALL 682
-#define MSG_SC6_TESTNUMBALLS 2904
-#define MSG_SC6_UTRUBACLICK 1105
-#define MSG_SC7_CLOSELUKE 822
-#define MSG_SC7_HIDEBOX 817
-#define MSG_SC7_HIDELUKE 821
-#define MSG_SC7_OPENLUKE 823
-#define MSG_SC7_PULL 2943
-#define MSG_SC7_SHOWBOX 816
-#define MSG_SC8_ARCADENOW 1044
-#define MSG_SC8_ENTERUP 3037
-#define MSG_SC8_GETHIMUP 789
-#define MSG_SC8_HIDELADDER_D 1107
-#define MSG_SC8_RESUMEFLIGHT 784
-#define MSG_SC8_STANDUP 2976
-#define MSG_SC10_CLICKGUM 992
-#define MSG_SC10_HIDEGUM 993
-#define MSG_SC10_LADDERTOBACK 3002
-#define MSG_SC10_LADDERTOFORE 3004
-#define MSG_SC10_SHOWGUM 994
-#define MSG_GOTOLADDER 618
-#define MSG_SHAKEBOTTLE 584
-#define MSG_SHOOTKOZAW 557
-#define MSG_SHOWCOIN 1033
-#define MSG_SPINHANDLE 2398
-#define MSG_STARTARCADE 781
-#define MSG_STARTHAND 612
-#define MSG_TAKEBOTTLE 614
-#define MSG_TAKEKOZAW 611
-#define MSG_TESTPLANK 538
-#define MSG_UPDATEBOTTLE 613
-#define MV_BLK_CLOSE 911
-#define MV_BLK_OPEN 910
-#define MV_CLK8_GO 2990
-#define MV_CST_CLOSELUKE 807
-#define MV_EGTR_FATASK 5332
-#define MV_IN1MAN_SLEEP 5111
-#define MV_BDG_OPEN 1379
-#define MV_BTN_CLICK 599
-#define MV_CLK_GO 589
-#define MV_HND_POINT 602
-#define MV_KZW_GOR 564
-#define MV_KZW_JUMP 558
-#define MV_KZW_JUMPROTATE 561
-#define MV_KZW_TOHOLERV 537
-#define MV_KZW_WALKPLANK 500
-#define MV_KZW_JUMPHIT 2857
-#define MV_KZW_JUMPOUT 586
-#define MV_KZW_RAISEHEAD 577
-#define MV_KZW_STANDUP 563
-#define MV_KZW_TURN 562
-#define MV_MAN_FROMLADDER 493
-#define MV_MAN_FROMLADDERUP 1522
-#define MV_MAN_GOD 481
+#define MV_FLY_FLY 4917
#define MV_MAN_GOLADDER 451
#define MV_MAN_GOLADDER2 2844
-#define MV_MAN_GOU 460
-#define MV_MAN_JUMPONPLANK 551
-#define MV_MAN_LOOKLADDER 520
-#define MV_MAN_LOOKLADDERRV 556
#define MV_MAN_LOOKUP 4773
-#define MV_MAN_PLANKTOLADDER 553
+#define rMV_MAN_LOOKUP 4775
+#define MV_MAN_TOLADDER 448
+#define MV_MAN_TOLADDER2 2841
#define MV_MAN_STARTLADDER 452
#define MV_MAN_STARTLADDER2 2842
-#define MV_MAN_STARTLADDERD 457
#define MV_MAN_STOPLADDER 454
#define MV_MAN_STOPLADDER2 2845
-#define MV_MAN_TOLADDER 448
-#define MV_MAN_TOLADDERD 1524
-#define MV_MAN_TOLADDER2 2841
#define MV_MAN_TURN_LU 486
-#define MV_MAN_TURN_SUD 1089
-#define MV_MAN6_TAKEBALL 2691
-#define MV_MAN6_THROWBALL 2692
-#define MV_MAN8_BADLUCK 783
-#define MV_MAN8_DRYGDOWN 770
-#define MV_MAN8_DRYGUP 768
-#define MV_MAN8_HANDSDOWN 772
-#define MV_MAN8_HANDSUP 777
-#define MV_MAN8_JUMP 775
-#define MV_MAN8_JUMPOFF 2969
-#define MV_MAN8_SITDOWN 2968
-#define MV_MANHDL_HANDLEDOWN 630
-#define MV_MANHDL_HANDLEUP 631
-#define MV_MOM_CYCLEBK 3012
-#define MV_MOM_JUMPBK 662
-#define MV_MOM_JUMPFW 661
-#define MV_MOM_STARTBK 3010
-#define MV_MOM_STOPBK 3013
-#define MV_MOM_TAKE1 2885
-#define MV_MOM_TAKE2 2886
-#define MV_MOM_TAKE3 2887
-#define MV_MOM_TAKE4 2888
-#define MV_MOM_TAKE5 2889
-#define MV_NDV_BLOW2 2855
-#define MV_NDV_DENIES 952
-#define MV_NDV_DENY_NOGUM 3022
-#define MV_OTM_BOXHANDLEDOWN 626
-#define MV_OTM_BOXHANDLEUP 627
-#define MV_OTM_HANDLEDOWN 620
-#define MV_OTM_HANDLEUP 621
-#define MV_PNK_WEIGHTLEFT 541
-#define MV_PNK_WEIGHTRIGHT 502
-#define MV_SC4_COIN_default 1029
-#define MV_SC7_BOX_default 792
-#define MV_SPK4_PLAY 3276
-#define MV_SPR_LOWER 543
-#define MV_VMT_DEF 765
-#define PIC_CMN_EVAL 3468
#define PIC_CSR_DEFAULT 4891
#define PIC_CSR_DEFAULT_INV 4892
#define PIC_CSR_ITN 4893
@@ -286,75 +85,17 @@ namespace Fullpipe {
#define PIC_IN1_PIPETITLE 5167
#define PIC_INV_MENU 991
#define PIC_MAP_A13 5275
-#define PIC_MAP_P03 5279
#define PIC_MAP_S01 5223
-#define PIC_SC1_KUCHKA 1321
-#define PIC_SC1_LADDER 1091
-#define PIC_SC1_OSK 1018
-#define PIC_SC1_OSK2 2932
-#define PIC_SC2_DTRUBA 841
-#define PIC_SC2_LADDER 412
-#define PIC_SC3_DOMIN 5182
-#define PIC_SC3_LADDER 1102
-#define PIC_SC4_BOTTLE 568
-#define PIC_SC4_BOTTLE2 2936
-#define PIC_SC4_DOWNTRUBA 619
-#define PIC_SC4_LADDER 1438
-#define PIC_SC4_LRTRUBA 616
-#define PIC_SC4_MASK 585
-#define PIC_SC4_PLANK 5183
-#define PIC_SC6_LADDER 1104
-#define PIC_SC8_ARCADENOW 1043
-#define PIC_SC8_LADDER 754
-#define PIC_SC8_LADDER_D 755
-#define PIC_SC8_LADDERD 1106
-#define PIC_SC10_DTRUBA 974
-#define PIC_SC10_LADDER 995
-#define QU_BALL_WALKL 4920
-#define QU_BALL_WALKR 4919
-#define QU_CST_CLOSELUKE 820
-#define QU_EGG6_GOL 4936
-#define QU_EGG6_GOR 4935
-#define QU_EGTR_MD2_SHOW 4698
-#define QU_EGTR_MD1_SHOW 4697
-#define QU_EGTR_SLIMSHOW 4883
-#define QU_HND_TAKE0 1440
-#define QU_HND_TAKE1 1441
-#define QU_HND_TAKE2 1442
-#define QU_HND_TAKEBOTTLE 1443
-#define QU_IN2_DO 5144
-#define QU_INTR_FINISH 5138
-#define QU_INTR_GETUPMAN 5136
#define QU_INTR_STARTINTRO 5133
-#define QU_KOZAW_WALK 505
-#define QU_MOM_JUMPBK 671
-#define QU_MOM_JUMPFW 670
-#define QU_MOM_PUTBALL 2903
-#define QU_MOM_SITDOWN 685
-#define QU_MOM_STANDUP 2899
-#define QU_MOM_TOLIFT 2902
-#define QU_PNK_CLICK 550
-#define QU_SC3_ENTERLIFT 2779
-#define QU_SC3_EXITLIFT 2808
-#define QU_SC6_FALLHANDLE 2995
-#define QU_SC4_GOCLOCK 595
-#define QU_SC4_MANFROMBOTTLE 2851
-#define QU_SC4_MANTOBOTTLE 2850
-#define QU_SC5_MANBUMP 1167
-#define QU_SC5_MANFLY 1168
-#define QU_SC6_DROPS 2898
-#define QU_SC6_DROPS3 2955
-#define QU_SC6_ENTERLIFT 1054
-#define QU_SC6_EXITLIFT 1055
-#define QU_SC6_FALLBALL 2690
-#define QU_SC6_SHOWHANDLE 1689
-#define QU_SC6_SHOWNEXTBALL 2689
-#define QU_SC8_FINISH 788
-#define QU_SC8_STANDUP 2975
-#define QU_SC10_ENTERLIFT 1067
-#define QU_SC10_EXITLIFT 2809
-#define QU_SC10_TAKEGUM 3026
#define SC_1 301
+#define SC_2 302
+#define SC_3 303
+#define SC_4 304
+#define SC_5 305
+#define SC_6 649
+#define SC_7 650
+#define SC_8 651
+#define SC_9 652
#define SC_10 653
#define SC_11 654
#define SC_12 655
@@ -365,7 +106,6 @@ namespace Fullpipe {
#define SC_17 1141
#define SC_18 1142
#define SC_19 1143
-#define SC_2 302
#define SC_20 1144
#define SC_21 1546
#define SC_22 1547
@@ -376,7 +116,6 @@ namespace Fullpipe {
#define SC_27 1552
#define SC_28 2062
#define SC_29 2063
-#define SC_3 303
#define SC_30 2064
#define SC_31 2065
#define SC_32 2066
@@ -386,12 +125,6 @@ namespace Fullpipe {
#define SC_36 2070
#define SC_37 2071
#define SC_38 2072
-#define SC_4 304
-#define SC_5 305
-#define SC_6 649
-#define SC_7 650
-#define SC_8 651
-#define SC_9 652
#define SC_COMMON 321
#define SC_DBGMENU 726
#define SC_FINAL1 4999
@@ -401,43 +134,12 @@ namespace Fullpipe {
#define SC_INTRO1 3896
#define SC_INTRO2 3907
#define SC_INV 858
-#define SC_LDR 635
-#define SC_MAINMENU 4620
-#define SC_MAP 5222
-#define SC_TEST 903
-#define SC_TITLES 5166
-#define SND_4_010 3125
-#define SND_4_012 3127
-#define SND_4_033 4990
-#define SND_5_026 5316
-#define SND_8_014 3624
#define SND_CMN_031 3516
+#define SND_CMN_060 4921
+#define SND_CMN_061 4922
#define SND_CMN_070 5199
#define SND_INTR_019 5220
-#define ST_BLK_CLOSED 912
-#define ST_BLK_OPEN 913
-#define ST_BTT_CHESHET 746
-#define ST_BTT_NOSPOON 739
-#define ST_BTT_SLEEPS 748
-#define ST_BTT_SPOON 741
-#define ST_CLK_CLOSED 590
-#define ST_CST_HANDLELESS 794
-#define ST_DYAS_LIES 318
-#define ST_EGTR_MID1 2863
-#define ST_EGTR_MID2 2869
-#define ST_EGTR_SLIM 336
-#define ST_HGN_LOOK 811
-#define ST_HGN_LUKE 810
-#define ST_HDL_BROKEN 3342
-#define ST_HDL_DOWN 625
-#define ST_HDL_PLUGGED 2397
-#define ST_HDL_UP 624
-#define ST_HND_EMPTY 603
-#define ST_IN1MAN_SLEEP 5112
-#define ST_KZW_EMPTY 498
-#define ST_KZW_JUMPOUT 587
-#define ST_KZW_RIGHT 559
-#define ST_KZW_SIT 560
+#define ST_FLY_FLY 4918
#define ST_LBN_0N 2832
#define ST_LBN_0P 2833
#define ST_LBN_1N 2753
@@ -458,42 +160,350 @@ namespace Fullpipe {
#define ST_LBN_8P 2775
#define ST_LBN_9N 2777
#define ST_LBN_9P 2778
-#define ST_LUK_CLOSED 805
-#define ST_LUK_OPEN 806
+#define ST_MAN_EMPTY 476
+#define ST_MAN_RIGHT 325
+#define TrubaDown 697
+#define TrubaLeft 474
+#define TrubaUp 680
+
+// Intro
+#define ANI_IN1MAN 5110
+#define MSG_INTR_ENDINTRO 5139
+#define MSG_INTR_GETUPMAN 5135
+#define MSG_INTR_SWITCHTO1 5145
+#define MSG_INTR_SWITCHTO2 5134
+#define MV_IN1MAN_SLEEP 5111
+#define QU_IN2_DO 5144
+#define QU_INTR_FINISH 5138
+#define QU_INTR_GETUPMAN 5136
+#define ST_IN1MAN_SLEEP 5112
+
+// Scene 1
+#define ANI_BOOT_1 4231
+#define MSG_SC1_SHOWOSK 1019
+#define MSG_SC1_SHOWOSK2 468
+#define MSG_SC1_UTRUBACLICK 1100
+#define PIC_SC1_KUCHKA 1321
+#define PIC_SC1_LADDER 1091
+#define PIC_SC1_OSK 1018
+#define PIC_SC1_OSK2 2932
+#define TrubaRight 696
+
+// Scene 2
+#define ANI_SC2_BOX 1020
+#define ANI_DADAYASHIK 306
+#define MSG_SC2_HIDELADDER 1023
+#define MSG_SC2_LADDERCLICK 1101
+#define MSG_SC2_PUTMANUP 1026
+#define MSG_SC2_SHOWLADDER 1027
+#define PIC_SC2_DTRUBA 841
+#define PIC_SC2_LADDER 412
+#define ST_DYAS_LIES 318
+
+// Scene 3
+#define ANI_DOMINO_3 2732
+#define ANI_EGGEATER 334
+#define ANI_INV_COIN 875
+#define ANI_INV_EGGAPL 1564
+#define ANI_INV_EGGBOOT 1570
+#define ANI_INV_EGGCOIN 1567
+#define ANI_INV_EGGDOM 1561
+#define ANI_INV_EGGGLS 1573
+#define MSG_LIFT_CLICKBUTTON 2780
+#define MSG_LIFT_CLOSEDOOR 5194
+#define MSG_LIFT_EXITLIFT 5187
+#define MSG_LIFT_GO 1065
+#define MSG_LIFT_STARTEXITQUEUE 5186
+#define MSG_SC3_HIDEDOMINO 3177
+#define MSG_SC3_ONTAKECOIN 5338
+#define MSG_SC3_RELEASEEGG 2681
+#define MSG_SC3_TAKEEGG 1583
+#define MSG_SC3_TESTFAT 1582
+#define MSG_SC3_UTRUBACLICK 1103
+#define MV_EGTR_FATASK 5332
+#define PIC_SC3_DOMIN 5182
+#define PIC_SC3_LADDER 1102
+#define ST_EGTR_MID1 2863
+#define ST_EGTR_MID2 2869
+#define ST_EGTR_SLIM 336
+#define QU_EGTR_MD2_SHOW 4698
+#define QU_EGTR_MD1_SHOW 4697
+#define QU_EGTR_SLIMSHOW 4883
+#define QU_SC3_ENTERLIFT 2779
+#define QU_SC3_EXITLIFT 2808
+
+// Scene 4
+#define ANI_BIGBALL 4923
+#define ANI_BUTTON 598
+#define ANI_CLOCK 588
+#define ANI_HAND 601
+#define ANI_KOZAWKA 495
+#define ANI_MAMASHA_4 660
+#define ANI_PLANK 501
+#define ANI_SC4_BOOT 1035
+#define ANI_SC4_COIN 690
+#define ANI_SPEAKER_4 3275
+#define ANI_SPRING 542
+#define MSG_GOTOLADDER 618
+#define MSG_KOZAWRESTART 546
+#define MSG_SC4_COINOUT 2895
+#define MSG_SC4_COINPUT 1032
+#define MSG_SC4_CLICKLADDER 1439
+#define MSG_SC4_DROPBOTTLE 2896
+#define MSG_SC4_HANDOVER 2960
+#define MSG_SC4_HIDEBOOT 4563
+#define MSG_SC4_KOZAWFALL 2858
+#define MSG_SC4_MANFROMBOTTLE 2854
+#define MSG_SC4_MANTOBOTTLE 2852
+#define MSG_SHAKEBOTTLE 584
+#define MSG_SHOOTKOZAW 557
+#define MSG_STARTHAND 612
+#define MSG_CLICKBOTTLE 569
+#define MSG_CLICKBUTTON 609
+#define MSG_CLICKPLANK 549
+#define MSG_LOWERPLANK 540
+#define MSG_RAISEPLANK 547
+#define MSG_SHOWCOIN 1033
+#define MSG_TAKEBOTTLE 614
+#define MSG_TAKEKOZAW 611
+#define MSG_TESTPLANK 538
+#define MSG_UPDATEBOTTLE 613
+#define MV_BTN_CLICK 599
+#define MV_CLK_GO 589
+#define MV_HND_POINT 602
+#define MV_KZW_GOR 564
+#define rMV_KZW_GOR 566
+#define MV_KZW_JUMP 558
+#define MV_KZW_JUMPROTATE 561
+#define MV_KZW_TOHOLERV 537
+#define MV_KZW_WALKPLANK 500
+#define MV_KZW_JUMPHIT 2857
+#define MV_KZW_JUMPOUT 586
+#define MV_KZW_RAISEHEAD 577
+#define MV_KZW_STANDUP 563
+#define MV_KZW_TURN 562
+#define MV_MAN_FROMLADDER 493
+#define MV_MAN_GOD 481
+#define MV_MAN_GOU 460
+#define MV_MAN_JUMPONPLANK 551
+#define MV_MAN_LOOKLADDER 520
+#define MV_MAN_PLANKTOLADDER 553
+#define MV_MAN_STARTLADDERD 457
+#define MV_PNK_WEIGHTLEFT 541
+#define MV_PNK_WEIGHTRIGHT 502
+#define MV_SC4_COIN_default 1029
+#define MV_SPK4_PLAY 3276
+#define MV_SPR_LOWER 543
+#define PIC_MAP_P03 5279
+#define PIC_SC4_BOTTLE 568
+#define PIC_SC4_BOTTLE2 2936
+#define PIC_SC4_DOWNTRUBA 619
+#define PIC_SC4_LADDER 1438
+#define PIC_SC4_LRTRUBA 616
+#define PIC_SC4_MASK 585
+#define PIC_SC4_PLANK 5183
+#define QU_BALL_WALKL 4920
+#define QU_BALL_WALKR 4919
+#define QU_HND_TAKE0 1440
+#define QU_HND_TAKE1 1441
+#define QU_HND_TAKE2 1442
+#define QU_HND_TAKEBOTTLE 1443
+#define QU_KOZAW_WALK 505
+#define QU_PNK_CLICK 550
+#define QU_SC4_GOCLOCK 595
+#define QU_SC4_MANFROMBOTTLE 2851
+#define QU_SC4_MANTOBOTTLE 2850
+#define SND_4_010 3125
+#define SND_4_012 3127
+#define SND_4_033 4990
+#define ST_CLK_CLOSED 590
+#define ST_HND_EMPTY 603
+#define ST_KZW_EMPTY 498
+#define ST_KZW_JUMPOUT 587
+#define ST_KZW_RIGHT 559
+#define ST_KZW_SIT 560
#define ST_MAN_GOLADDER 450
#define ST_MAN_GOLADDER2 2843
-#define ST_MAN_EMPTY 476
+#define MV_MAN_LOOKLADDERRV 556
#define ST_MAN_LADDERDOWN 521
#define ST_MAN_LOOKPLANK 555
#define ST_MAN_ONPLANK 552
-#define ST_MAN_RIGHT 325
#define ST_MAN_SIT 1164
#define ST_MAN_STANDLADDER 453
#define ST_MAN_UP 449
+#define ST_PNK_WEIGHTLEFT 503
+#define ST_PNK_WEIGHTRIGHT 504
+#define ST_SPR_UP 544
+
+// Scene 5
+#define ANI_BIGLUK 909
+#define ANI_HANDLE 622
+#define ANI_OTMOROZ 419
+#define MSG_SC5_BGRSOUNDOFF 5315
+#define MSG_SC5_BGRSOUNDON 5314
+#define MSG_SC5_HANDLEDOWN 916
+#define MSG_SC5_HANDLEUP 915
+#define MSG_SC5_HIDEHANDLE 917
+#define MSG_SC5_MAKEMANFLIGHT 1136
+#define MSG_SC5_MAKEOTMFEEDBACK 1169
+#define MSG_SC5_SHOWHANDLE 918
+#define MSG_SC5_TESTLUK 914
+#define MV_BLK_CLOSE 911
+#define MV_BLK_OPEN 910
+#define MV_MANHDL_HANDLEDOWN 630
+#define MV_MANHDL_HANDLEUP 631
+#define MV_OTM_BOXHANDLEDOWN 626
+#define MV_OTM_BOXHANDLEUP 627
+#define MV_OTM_HANDLEDOWN 620
+#define MV_OTM_HANDLEUP 621
+#define QU_SC5_MANBUMP 1167
+#define QU_SC5_MANFLY 1168
+#define SND_5_026 5316
+#define ST_BLK_CLOSED 912
+#define ST_BLK_OPEN 913
+#define ST_HDL_BROKEN 3342
+#define ST_HDL_DOWN 625
+#define ST_HDL_UP 624
+#define ST_OTM_BOX_LEFT 429
+#define ST_OTM_GLS_LEFT 421
+#define ST_OTM_VNT_LEFT 434
+
+// Scene 6
+#define ANI_BALLDROP 2685
+#define ANI_BUTTON_6 2988
+#define ANI_EGGIE 4929
+#define ANI_INV_HANDLE 893
+#define ANI_MAMASHA 656
+#define ANI_NEWBALL 1073
+#define MSG_SC6_BTNPUSH 1017
+#define MSG_SC6_ENABLEDROPS 687
+#define MSG_SC6_INSTHANDLE 1012
+#define MSG_SC6_JUMPBK 2900
+#define MSG_SC6_JUMPFW 2901
+#define MSG_SC6_RESTORESCROLL 2906
+#define MSG_SC6_SHOWNEXTBALL 790
+#define MSG_SC6_STARTDROPS 2897
+#define MSG_SC6_TAKEBALL 682
+#define MSG_SC6_TESTNUMBALLS 2904
+#define MSG_SC6_UTRUBACLICK 1105
+#define MSG_SPINHANDLE 2398
+#define MV_MAN6_TAKEBALL 2691
+#define MV_MAN6_THROWBALL 2692
+#define MV_MOM_CYCLEBK 3012
+#define MV_MOM_JUMPBK 662
+#define MV_MOM_JUMPFW 661
+#define MV_MOM_STARTBK 3010
+#define MV_MOM_STOPBK 3013
+#define MV_MOM_TAKE1 2885
+#define MV_MOM_TAKE2 2886
+#define MV_MOM_TAKE3 2887
+#define MV_MOM_TAKE4 2888
+#define MV_MOM_TAKE5 2889
+#define PIC_SC6_LADDER 1104
+#define QU_EGG6_GOL 4936
+#define QU_EGG6_GOR 4935
+#define QU_MOM_JUMPBK 671
+#define QU_MOM_JUMPFW 670
+#define QU_MOM_PUTBALL 2903
+#define QU_MOM_SITDOWN 685
+#define QU_MOM_STANDUP 2899
+#define QU_MOM_TOLIFT 2902
+#define QU_SC6_DROPS 2898
+#define QU_SC6_DROPS3 2955
+#define QU_SC6_ENTERLIFT 1054
+#define QU_SC6_EXITLIFT 1055
+#define QU_SC6_FALLBALL 2690
+#define QU_SC6_FALLHANDLE 2995
+#define QU_SC6_SHOWHANDLE 1689
+#define QU_SC6_SHOWNEXTBALL 2689
+#define ST_HDL_PLUGGED 2397
#define ST_MAN6_BALL 2688
-#define ST_MAN8_FLYDOWN 771
-#define ST_MAN8_FLYUP 769
-#define ST_MAN8_HANDSUP 773
-#define ST_MAN8_STAND 774
#define ST_MOM_SITS 659
#define ST_MOM_STANDS 658
#define ST_NBL_NORM 1076
-#define ST_NDV_SIT 946
-#define ST_OTM_BOX_LEFT 429
-#define ST_OTM_GLS_LEFT 421
-#define ST_OTM_VNT_LEFT 434
+
+// Scene 7
+#define ANI_CORNERSITTER 71
+#define ANI_HOOLIGAN 808
+#define ANI_LUKE 803
+#define ANI_PLUSMINUS 2938
+#define ANI_SC7_BOX 791
+#define MSG_SC7_CLOSELUKE 822
+#define MSG_SC7_HIDEBOX 817
+#define MSG_SC7_HIDELUKE 821
+#define MSG_SC7_OPENLUKE 823
+#define MSG_SC7_PULL 2943
+#define MSG_SC7_SHOWBOX 816
+#define MV_CST_CLOSELUKE 807
+#define MV_SC7_BOX_default 792
+#define QU_CST_CLOSELUKE 820
+#define ST_CST_HANDLELESS 794
+#define ST_HGN_LOOK 811
+#define ST_HGN_LUKE 810
+#define ST_LUK_CLOSED 805
+#define ST_LUK_OPEN 806
#define ST_PMS_MINUS 2942
#define ST_PMS_PLUS 2941
-#define ST_PNK_WEIGHTLEFT 503
-#define ST_PNK_WEIGHTRIGHT 504
-#define ST_SPR_UP 544
+
+// Scene 8
+#define ANI_BATUTA 737
+#define ANI_CLOCK_8 2989
+#define ANI_VMYATS 764
+#define MSG_SC8_ARCADENOW 1044
+#define MSG_SC8_ENTERUP 3037
+#define MSG_SC8_GETHIMUP 789
+#define MSG_SC8_HIDELADDER_D 1107
+#define MSG_SC8_RESUMEFLIGHT 784
+#define MSG_SC8_STANDUP 2976
+#define MSG_STARTARCADE 781
+#define MV_CLK8_GO 2990
+#define MV_MAN_FROMLADDERUP 1522
+#define MV_MAN_TOLADDERD 1524
+#define MV_MAN8_BADLUCK 783
+#define MV_MAN8_DRYGDOWN 770
+#define MV_MAN8_DRYGUP 768
+#define MV_MAN8_HANDSDOWN 772
+#define MV_MAN8_HANDSUP 777
+#define MV_MAN8_JUMP 775
+#define MV_MAN8_JUMPOFF 2969
+#define MV_MAN8_SITDOWN 2968
+#define MV_VMT_DEF 765
+#define PIC_SC8_ARCADENOW 1043
+#define PIC_SC8_LADDER 754
+#define PIC_SC8_LADDER_D 755
+#define PIC_SC8_LADDERD 1106
+#define QU_SC8_FINISH 788
+#define QU_SC8_STANDUP 2975
+#define SND_8_014 3624
+#define ST_BTT_CHESHET 746
+#define ST_BTT_NOSPOON 739
+#define ST_BTT_SLEEPS 748
+#define ST_BTT_SPOON 741
+#define ST_MAN8_FLYDOWN 771
+#define ST_MAN8_FLYUP 769
+#define ST_MAN8_HANDSUP 773
+#define ST_MAN8_STAND 774
#define ST_VMT_MIN 766
-#define TrubaDown 697
-#define TrubaLeft 474
-#define TrubaRight 696
-#define TrubaUp 680
-#define rMV_MAN_LOOKUP 4775
-#define rMV_KZW_GOR 566
+
+// Scene 10
+#define ANI_GUM 978
+#define ANI_NADUVATEL 944
+#define ANI_PACHKA 975
+#define ANI_PACHKA2 3008
+#define MSG_SC10_CLICKGUM 992
+#define MSG_SC10_HIDEGUM 993
+#define MSG_SC10_LADDERTOBACK 3002
+#define MSG_SC10_LADDERTOFORE 3004
+#define MSG_SC10_SHOWGUM 994
+#define MV_NDV_BLOW2 2855
+#define MV_NDV_DENIES 952
+#define MV_NDV_DENY_NOGUM 3022
+#define PIC_SC10_DTRUBA 974
+#define PIC_SC10_LADDER 995
+#define QU_SC10_ENTERLIFT 1067
+#define QU_SC10_EXITLIFT 2809
+#define QU_SC10_TAKEGUM 3026
+#define ST_NDV_SIT 946
// Scene 11
#define ANI_BOOTS_11 2704
@@ -967,6 +977,47 @@ namespace Fullpipe {
#define ST_VNT26_RIGHT2 3348
#define ST_VNT26_UP2 1948
+// Scene 28
+#define ANI_LIFT 982
+#define ANI_LIFT_28 4238
+#define MSG_SC28_CLICKLIFT 4258
+#define MSG_SC28_ENDCABIN 3456
+#define MSG_SC28_ENDLIFT1 4259
+#define MSG_SC28_ENDLIFT6 4244
+#define MSG_SC28_LIFT1_SHOWAFTER 4261
+#define MSG_SC28_LIFT6INSIDE 5354
+#define MSG_SC28_LIFT6MUSIC 5355
+#define MSG_SC28_MAKEFACES 4684
+#define MSG_SC28_STARTWORK1 4255
+#define MSG_SC28_TRYVTORPERS 4961
+#define MSG_SC28_TURNOFF_0 4678
+#define MSG_SC28_TURNOFF_1 4279
+#define MSG_SC28_TURNOFF_2 4277
+#define MSG_SC28_TURNOFF_3 4275
+#define MSG_SC28_TURNOFF_4 4282
+#define MSG_SC28_TURNOFF_6 4273
+#define MSG_SC28_TURNON4 4280
+#define MSG_SC28_TURNON_0 4677
+#define MSG_SC28_TURNON_1 4278
+#define MSG_SC28_TURNON_2 4276
+#define MSG_SC28_TURNON_3 4274
+#define MSG_SC28_TURNON_4 4281
+#define MSG_SC28_TURNON_6 4272
+#define PIC_SC28_DARK0 4675
+#define PIC_SC28_DARK1 4266
+#define PIC_SC28_DARK2 4267
+#define PIC_SC28_DARK3 4268
+#define PIC_SC28_DARK4 4269
+#define PIC_SC28_DARK5 4270
+#define PIC_SC28_DARK6 4271
+#define QU_SC28_LIFT0_START 4676
+#define QU_SC28_LIFT1_START 4254
+#define QU_SC28_LIFT2_START 4246
+#define QU_SC28_LIFT3_START 4245
+#define QU_SC28_LIFT5_START 4674
+#define QU_SC28_LIFT6_END 3563
+#define QU_SC28_LIFT6_START 4243
+
// Scene 30
#define ANI_LEG 2322
#define MSG_SC30_UPDATEPATH 2358
@@ -995,6 +1046,7 @@ namespace Fullpipe {
#define ST_RHT_OPEN 2362
// Debug scene
+#define MSG_RESTARTGAME 4767
#define PIC_SCD_1 727
#define PIC_SCD_2 728
#define PIC_SCD_3 729
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index a0348a9407..674dada0b9 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -94,6 +94,7 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
_isProcessingMessages = false;
_musicAllowed = -1;
+ _musicGameVar = 0;
_aniMan = 0;
_aniMan2 = 0;
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index a2d4961f78..55be5a7a34 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -24,6 +24,7 @@ MODULE_OBJS = \
stateloader.o \
statics.o \
utils.o \
+ scenes/sceneIntro.o \
scenes/scene01.o \
scenes/scene02.o \
scenes/scene03.o \
@@ -51,8 +52,7 @@ MODULE_OBJS = \
scenes/scene30.o \
scenes/scene31.o \
scenes/scene36.o \
- scenes/sceneDbg.o \
- scenes/sceneIntro.o
+ scenes/sceneDbg.o
# This module can be built as a plugin
ifeq ($(ENABLE_FULLPIPE), DYNAMIC_PLUGIN)
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 04e2714053..4482225c2a 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -792,6 +792,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
addMessageHandler(sceneHandler27, 2);
_updateCursorCallback = scene27_updateCursor;
break;
+#endif
case SC_28:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_28");
@@ -804,6 +805,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
_updateCursorCallback = scene28_updateCursor;
break;
+#if 0
case SC_29:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_29");
scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 7d7bb6e48d..ab5e18654f 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -132,6 +132,10 @@ void scene26_setupDrop(Scene *sc);
int sceneHandler26(ExCommand *cmd);
int scene26_updateCursor();
+void scene28_initScene(Scene *sc);
+ int sceneHandler28(ExCommand *ex);
+int scene28_updateCursor();
+
int scene30_updateCursor();
void scene30_initScene(Scene *sc, int flag);
int sceneHandler30(ExCommand *cmd);
@@ -428,8 +432,8 @@ public:
int scene28_var04;
int scene28_var05;
int scene28_var06;
- int scene28_var07;
- int scene28_var08;
+ PictureObject *scene28_var07;
+ PictureObject *scene28_var08;
int scene28_var09;
int scene28_var10;
int scene28_var11;
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index a280273e6a..b1e261287a 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -121,7 +121,7 @@ int scene16_updateCursor() {
}
void sceneHandler16_laughSound() {
- int snd;
+ int snd = SND_16_035;
switch (g_vars->scene16_sound) {
case SND_16_034:
@@ -191,7 +191,7 @@ void sceneHandler16_fillMug() {
mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_GIRLOUT), 0, 1);
mq->replaceKeyCode(-1, g_vars->scene16_walkingGirl->_okeyCode);
- if (mq->chain(g_vars->scene16_walkingGirl) || !mq)
+ if (mq->chain(g_vars->scene16_walkingGirl))
return;
}
delete mq;
diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp
index 657fe12ce1..13c9ab36e9 100644
--- a/engines/fullpipe/scenes/scene22.cpp
+++ b/engines/fullpipe/scenes/scene22.cpp
@@ -261,8 +261,7 @@ void sceneHandler22_stoolLogic(ExCommand *cmd) {
mq->deleteExCommandByIndex(0, 0);
- if (mq)
- delete mq;
+ delete mq;
mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC22_TOSTOOL_R), 0, 0);
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 5c2ddc695e..ba07c3e5b9 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -436,7 +436,7 @@ void sceneHandler25_backToPipe() {
void sceneHandler25_walkOnLadder(StaticANIObject *ani, Common::Point *pnt, MessageQueue *mq, int flag) {
int aniY = ani->_oy;
- int newx, newy;
+ int newx = 0, newy = 0;
Common::Point point;
ExCommand *ex;
@@ -488,7 +488,7 @@ void sceneHandler25_walkOnLadder(StaticANIObject *ani, Common::Point *pnt, Messa
for (int i = 0; i < numObsolete; i++)
mq->deleteExCommandByIndex(0, 1);
- ex = new ExCommand(ani->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+ ex = new ExCommand(ani->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
ex->_field_14 = 256;
ex->_messageNum = 0;
@@ -509,6 +509,9 @@ void sceneHandler25_walkOnLadder(StaticANIObject *ani, Common::Point *pnt, Messa
ani->_movement->setDynamicPhaseIndex(idx);
} else {
+ if (!lastEx)
+ error("sceneHandler25_walkOnLadder(): Incorrect state. Please report this to sev");
+
ani->changeStatics2(ani->getMovementById(lastEx->_messageNum)->_staticsObj1->_staticsId);
ani->setOXY(newx, newy);
ani->restartMessageQueue(mq);
@@ -588,7 +591,7 @@ int sceneHandler25(ExCommand *cmd) {
break;
case 33:
- if (g_fp->_aniMan2) {
+ if (g_fp->_aniMan2) {
int x = g_fp->_aniMan2->_ox;
int y = g_fp->_aniMan2->_oy;
diff --git a/engines/fullpipe/scenes/scene28.cpp b/engines/fullpipe/scenes/scene28.cpp
index bdb1699d70..9fad0f74f5 100644
--- a/engines/fullpipe/scenes/scene28.cpp
+++ b/engines/fullpipe/scenes/scene28.cpp
@@ -36,7 +36,7 @@
namespace Fullpipe {
-void scene28_initScene() {
+void scene28_initScene(Scene *sc) {
g_vars->scene28_var01 = 200;
g_vars->scene28_var02 = 200;
g_vars->scene28_var03 = 300;
@@ -54,4 +54,241 @@ void scene28_initScene() {
g_fp->initArcadeKeys("SC_28");
}
+int scene28_updateCursor() {
+ g_fp->updateCursorCommon();
+ if (g_fp->_objectIdAtCursor == ANI_LIFT || g_fp->_objectIdAtCursor == ANI_LIFT_28)
+ if (g_fp->_cursorId == PIC_CSR_DEFAULT)
+ g_fp->_cursorId = PIC_CSR_ITN;
+
+ return g_fp->_cursorId;
+}
+
+void sceneHandler28_lift1ShowAfter() {
+ warning("STUB: sceneHandler28_lift1ShowAfter()");
+}
+
+void sceneHandler28_makeFaces(ExCommand *cmd) {
+ warning("STUB: sceneHandler28_makeFaces()");
+}
+
+void sceneHandler28_trySecondaryPers() {
+ warning("STUB: sceneHandler28_trySecondaryPers()");
+}
+
+void sceneHandler28_turnOn2() {
+ warning("STUB: sceneHandler28_turnOn2()");
+}
+
+void sceneHandler28_startWork1() {
+ warning("STUB: sceneHandler28_startWork1()");
+}
+
+void sceneHandler28_clickLift(int keyCode) {
+ warning("STUB: sceneHandler28_clickLift()");
+}
+
+void sceneHandler28_lift0Start() {
+ chainQueue(QU_SC28_LIFT0_START, 1);
+}
+
+void sceneHandler28_lift1Start() {
+ warning("STUB: sceneHandler28_lift1Start()");
+}
+
+void sceneHandler28_lift2Start() {
+ chainQueue(QU_SC28_LIFT2_START, 1);
+}
+
+void sceneHandler28_lift3Start() {
+ chainQueue(QU_SC28_LIFT3_START, 1);
+}
+
+void sceneHandler28_lift4Start() {
+ warning("STUB: sceneHandler28_lift4Start()");
+}
+
+void sceneHandler28_lift5Start() {
+ chainQueue(QU_SC28_LIFT5_START, 1);
+}
+
+void sceneHandler28_lift6Start() {
+ warning("STUB: sceneHandler28_lift6Start()");
+}
+
+
+int sceneHandler28(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_SC28_LIFT6MUSIC:
+ g_fp->playTrack(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_28"), "MUSIC_TIOTIA", 1);
+ break;
+
+ case MSG_SC28_LIFT6INSIDE:
+ g_vars->scene28_var11 = 1;
+ break;
+
+ case MSG_SC28_LIFT1_SHOWAFTER:
+ sceneHandler28_lift1ShowAfter();
+ break;
+
+ case MSG_SC28_MAKEFACES:
+ sceneHandler28_makeFaces(cmd);
+ break;
+
+ case MSG_SC28_TRYVTORPERS:
+ sceneHandler28_trySecondaryPers();
+ break;
+
+ case MSG_SC28_TURNOFF_0:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK0, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_TURNON_0:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK0, 0);
+ break;
+
+ case MSG_SC28_TURNON_1:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK1, 0);
+ break;
+
+ case MSG_SC28_TURNOFF_1:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK1, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_TURNON_2:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK2, 0);
+ sceneHandler28_turnOn2();
+ break;
+
+ case MSG_SC28_TURNOFF_2:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK2, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_TURNON_3:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK3, 0);
+ break;
+
+ case MSG_SC28_TURNOFF_3:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK3, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_TURNON_4:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK4, 0);
+ break;
+
+ case MSG_SC28_TURNOFF_4:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK4, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_TURNON_6:
+ g_vars->scene28_var07 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK6, 0);
+ break;
+
+ case MSG_SC28_TURNOFF_6:
+ g_vars->scene28_var08 = g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK6, 0);
+ g_vars->scene28_var08->_flags |= 4;
+ break;
+
+ case MSG_SC28_STARTWORK1:
+ sceneHandler28_startWork1();
+ break;
+
+ case MSG_SC28_CLICKLIFT:
+ sceneHandler28_clickLift(cmd->_keyCode);
+ break;
+
+ case MSG_SC28_ENDLIFT1:
+ case MSG_SC28_ENDLIFT6:
+ case MSG_SC28_ENDCABIN:
+ g_fp->_behaviorManager->setFlagByStaticAniObject(g_fp->_aniMan, 1);
+ g_fp->_aniMan->_flags &= 0xFEFF;
+ break;
+
+ case 29:
+ {
+ if (g_vars->scene28_var11) {
+ chainObjQueue(g_fp->_aniMan, QU_SC28_LIFT6_END, 1);
+
+ g_fp->playTrack(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_28"), "MUSIC", 1);
+
+ g_vars->scene28_var11 = 0;
+ }
+
+ StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
+
+ if (ani)
+ if (ani->_id == ANI_LIFT || ani->_id == ANI_LIFT_28 ) {
+ sceneHandler28_clickLift(ani->_okeyCode);
+
+ cmd->_messageKind = 0;
+ break;
+ }
+
+ if (!ani || !canInteractAny(g_fp->_aniMan, ani, cmd->_keyCode)) {
+ int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
+ PictureObject *pic = g_fp->_currentScene->getPictureObjectById(picId, 0);
+
+ if (!pic || !canInteractAny(g_fp->_aniMan, pic, cmd->_keyCode)) {
+ if ((g_fp->_sceneRect.right - cmd->_sceneClickX < 47 && g_fp->_sceneRect.right < g_fp->_sceneWidth - 1)
+ || (cmd->_sceneClickX - g_fp->_sceneRect.left < 47 && g_fp->_sceneRect.left > 0))
+ g_fp->processArcade(cmd);
+ }
+ }
+ break;
+ }
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ if (x < g_fp->_sceneRect.left + g_vars->scene28_var01)
+ g_fp->_currentScene->_x = x - g_vars->scene28_var03 - g_fp->_sceneRect.left;
+
+ if (x > g_fp->_sceneRect.right - g_vars->scene28_var01)
+ g_fp->_currentScene->_x = x + g_vars->scene28_var03 - g_fp->_sceneRect.right;
+ }
+
+ if (g_vars->scene28_var07) {
+ if (g_vars->scene28_var07->_picture->getAlpha() > 10) {
+ g_vars->scene28_var07->_picture->setAlpha(g_vars->scene28_var07->_picture->getAlpha() - 10);
+ } else {
+ g_vars->scene28_var07->_flags &= 0xFFFB;
+
+ g_vars->scene28_var07 = 0;
+ }
+ }
+
+ if (g_vars->scene28_var08) {
+ if (g_vars->scene28_var08->_picture->getAlpha() < 0xF9u ) {
+ g_vars->scene28_var08->_picture->setAlpha(g_vars->scene28_var08->_picture->getAlpha() + 6);
+ } else {
+ g_vars->scene28_var08->_picture->setAlpha(0xff);
+
+ g_vars->scene28_var08 = 0;
+ }
+ }
+
+ g_fp->_floaters->update();
+
+ for (uint i = 0; i < g_fp->_floaters->_array2.size(); i++)
+ if (g_fp->_floaters->_array2[i]->val13 == 1)
+ g_fp->_floaters->_array2[i]->ani->_priority = 15;
+
+ g_fp->_behaviorManager->updateBehaviors();
+
+ g_fp->startSceneTrack();
+
+ break;
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index b7c6a9b5a9..615eace374 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -60,10 +60,6 @@
*/
namespace Hopkins {
-#define DEBUG_BASIC 1
-#define DEBUG_INTERMEDIATE 2
-#define DEBUG_DETAILED 3
-
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp
index cf21bc094e..b332418cf5 100644
--- a/engines/neverhood/menumodule.cpp
+++ b/engines/neverhood/menumodule.cpp
@@ -1083,7 +1083,7 @@ static const NRect kLoadGameMenuButtonCollisionBounds[] = {
{ 182, 358, 241, 433 }
};
-static const NRect kLoadGameMenuListBoxRect = { 0, 0, 320, 271 };
+static const NRect kLoadGameMenuListBoxRect = { 0, 0, 320, 272 };
static const NRect kLoadGameMenuTextEditRect = { 0, 0, 320, 17 };
static const NRect kLoadGameMenuMouseRect = { 263, 48, 583, 65 };
@@ -1116,7 +1116,7 @@ static const NRect kDeleteGameMenuButtonCollisionBounds[] = {
{ 395, 278, 452, 372 }
};
-static const NRect kDeleteGameMenuListBoxRect = { 0, 0, 320, 271 };
+static const NRect kDeleteGameMenuListBoxRect = { 0, 0, 320, 272 };
static const NRect kDeleteGameMenuTextEditRect = { 0, 0, 320, 17 };
DeleteGameMenu::DeleteGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameList *savegameList)
diff --git a/engines/neverhood/module.cpp b/engines/neverhood/module.cpp
index d1578e680c..3ef4554334 100644
--- a/engines/neverhood/module.cpp
+++ b/engines/neverhood/module.cpp
@@ -48,7 +48,7 @@ void Module::draw() {
uint32 Module::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
switch (messageNum) {
case 0x0008:
- sendMessage(_parentModule, 8, 0);
+ sendMessage(_parentModule, 0x0008, 0);
return 0;
case 0x1009:
_moduleResult = param.asInteger();
diff --git a/engines/neverhood/palette.cpp b/engines/neverhood/palette.cpp
index 941bcc3cd3..134fec7163 100644
--- a/engines/neverhood/palette.cpp
+++ b/engines/neverhood/palette.cpp
@@ -119,7 +119,7 @@ void Palette::startFadeToBlack(int counter) {
_fadeToG = 0;
_fadeToB = 0;
_palCounter = counter;
- _fadeStep = 255 / counter;
+ _fadeStep = calculateFadeStep(counter);
_status = 1;
}
@@ -131,7 +131,7 @@ void Palette::startFadeToWhite(int counter) {
_fadeToG = 255;
_fadeToB = 255;
_palCounter = counter;
- _fadeStep = 255 / counter;
+ _fadeStep = calculateFadeStep(counter);
_status = 1;
}
@@ -140,7 +140,7 @@ void Palette::startFadeToPalette(int counter) {
if (counter == 0)
counter = 1;
_palCounter = counter;
- _fadeStep = 255 / counter;
+ _fadeStep = calculateFadeStep(counter);
_status = 2;
}
@@ -203,4 +203,11 @@ void Palette::fadeColor(byte *rgb, byte toR, byte toG, byte toB) {
#undef FADE
}
+int Palette::calculateFadeStep(int counter) {
+ int fadeStep = 255 / counter;
+ if (255 % counter)
+ fadeStep++;
+ return fadeStep;
+}
+
} // End of namespace Neverhood
diff --git a/engines/neverhood/palette.h b/engines/neverhood/palette.h
index c83207caae..016f856104 100644
--- a/engines/neverhood/palette.h
+++ b/engines/neverhood/palette.h
@@ -61,6 +61,7 @@ protected:
int _fadeStep;
void update();
void fadeColor(byte *rgb, byte toR, byte toG, byte toB);
+ int calculateFadeStep(int counter);
};
} // End of namespace Neverhood
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index 1b8aa55460..f46c1dfbb0 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -1044,6 +1044,8 @@ void SciMusic::remapChannels() {
if (!_channelMap[i]._song)
resetDeviceChannel(i);
}
+
+ delete map;
}