Ticket #8991: Gob_Strangerke_090407_v2.patch
File Gob_Strangerke_090407_v2.patch, 60.7 KB (added by , 15 years ago) |
---|
-
dists/msvc9/gob.vcproj
284 284 > 285 285 </File> 286 286 <File 287 RelativePath="..\..\engines\gob\draw_fascin.cpp" 288 > 289 </File> 290 <File 287 291 RelativePath="..\..\engines\gob\draw_v1.cpp" 288 292 > 289 293 </File> … … 404 408 > 405 409 </File> 406 410 <File 411 RelativePath="..\..\engines\gob\inter_fascin.cpp" 412 > 413 </File> 414 <File 407 415 RelativePath="..\..\engines\gob\inter_v1.cpp" 408 416 > 409 417 </File> -
engines/gob/detection.cpp
35 35 36 36 GameType gameType; 37 37 int32 features; 38 const char *startStkBase; 38 39 const char *startTotBase; 39 40 }; 40 41 … … 59 60 {"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"}, 60 61 {"dynasty", "The Last Dynasty"}, 61 62 {"urban", "Urban Runner"}, 63 {"archibald", "Playtoon 1 - Uncle Archibald"}, 64 {"spirou", "Playtoon 2 - Spirou"}, 65 {"fascination", "Fascination"}, 66 {"geisha", "Geisha"}, 67 {"adibou4", "Adibou v4"}, 62 68 {0, 0} 63 69 }; 64 70 … … 82 88 }, 83 89 kGameTypeGob1, 84 90 kFeaturesEGA, 85 "intro" 91 0, 92 0 86 93 }, 87 94 { 88 95 { … … 95 102 }, 96 103 kGameTypeGob1, 97 104 kFeaturesEGA, 98 "intro" 105 0, 106 0 99 107 }, 100 108 { // Supplied by Theruler76 in bug report #1201233 101 109 { … … 108 116 }, 109 117 kGameTypeGob1, 110 118 kFeaturesNone, 111 "intro" 119 0, 120 0 112 121 }, 113 122 { // Supplied by raziel_ in bug report #1891864 114 123 { … … 121 130 }, 122 131 kGameTypeGob1, 123 132 kFeaturesAdlib, 124 "intro" 133 0, 134 0 125 135 }, 126 136 { // CD 1.000 version. 127 137 { … … 134 144 }, 135 145 kGameTypeGob1, 136 146 kFeaturesCD, 137 "intro" 147 0, 148 0 138 149 }, 139 150 { // CD 1.000 version. 140 151 { … … 147 158 }, 148 159 kGameTypeGob1, 149 160 kFeaturesCD, 150 "intro" 161 0, 162 0 151 163 }, 152 164 { // CD 1.000 version. 153 165 { … … 160 172 }, 161 173 kGameTypeGob1, 162 174 kFeaturesCD, 163 "intro" 175 0, 176 0 164 177 }, 165 178 { // CD 1.000 version. 166 179 { … … 173 186 }, 174 187 kGameTypeGob1, 175 188 kFeaturesCD, 176 "intro" 189 0, 190 0 177 191 }, 178 192 { // CD 1.000 version. 179 193 { … … 186 200 }, 187 201 kGameTypeGob1, 188 202 kFeaturesCD, 189 "intro" 203 0, 204 0 190 205 }, 191 206 { // CD 1.02 version. Multilingual 192 207 { … … 199 214 }, 200 215 kGameTypeGob1, 201 216 kFeaturesCD, 202 "intro" 217 0, 218 0 203 219 }, 204 220 { // CD 1.02 version. Multilingual 205 221 { … … 212 228 }, 213 229 kGameTypeGob1, 214 230 kFeaturesCD, 215 "intro" 231 0, 232 0 216 233 }, 217 234 { // CD 1.02 version. Multilingual 218 235 { … … 225 242 }, 226 243 kGameTypeGob1, 227 244 kFeaturesCD, 228 "intro" 245 0, 246 0 229 247 }, 230 248 { // CD 1.02 version. Multilingual 231 249 { … … 238 256 }, 239 257 kGameTypeGob1, 240 258 kFeaturesCD, 241 "intro" 259 0, 260 0 242 261 }, 243 262 { // CD 1.02 version. Multilingual 244 263 { … … 251 270 }, 252 271 kGameTypeGob1, 253 272 kFeaturesCD, 254 "intro" 273 0, 274 0 255 275 }, 256 276 { 257 277 { … … 264 284 }, 265 285 kGameTypeGob1, 266 286 kFeaturesNone, 267 "intro" 287 0, 288 0 268 289 }, 269 290 { 270 291 { … … 277 298 }, 278 299 kGameTypeGob1, 279 300 kFeaturesNone, 280 "intro" 301 0, 302 0 281 303 }, 282 304 { 283 305 { … … 290 312 }, 291 313 kGameTypeGob1, 292 314 kFeaturesNone, 293 "intro" 315 0, 316 0 294 317 }, 295 318 { // Supplied by raina in the forums 296 319 { … … 303 326 }, 304 327 kGameTypeGob1, 305 328 kFeaturesNone, 306 "intro" 329 0, 330 0 307 331 }, 308 332 { // Supplied by paul66 in bug report #1652352 309 333 { … … 316 340 }, 317 341 kGameTypeGob1, 318 342 kFeaturesAdlib, 319 "intro" 343 0, 344 0 320 345 }, 321 346 { // Supplied by paul66 in bug report #1652352 322 347 { … … 329 354 }, 330 355 kGameTypeGob1, 331 356 kFeaturesAdlib, 332 "intro" 357 0, 358 0 333 359 }, 334 360 { // Supplied by paul66 in bug report #1652352 335 361 { … … 342 368 }, 343 369 kGameTypeGob1, 344 370 kFeaturesAdlib, 345 "intro" 371 0, 372 0 346 373 }, 347 374 { // Supplied by paul66 in bug report #1652352 348 375 { … … 355 382 }, 356 383 kGameTypeGob1, 357 384 kFeaturesAdlib, 358 "intro" 385 0, 386 0 359 387 }, 360 388 { // Supplied by paul66 in bug report #1652352 361 389 { … … 368 396 }, 369 397 kGameTypeGob1, 370 398 kFeaturesAdlib, 371 "intro" 399 0, 400 0 372 401 }, 402 { 403 { 404 "gob1", 405 "", 406 { 407 {"intro.stk", 0, "f5f028ee39c456fa51fa63b606583918", 313472}, 408 {"musmac1.mid", 0, "4f66903b33df8a20edd4c748809c0b56", 8161}, 409 {NULL, 0, NULL, 0} 410 }, 411 FR_FRA, 412 kPlatformWindows, 413 ADGF_NO_FLAGS 414 }, 415 kGameTypeGob1, 416 kFeaturesAdlib, 417 0, 418 0 419 }, 373 420 { // Supplied by fac76 in bug report #1883808 374 421 { 375 422 "gob2", … … 381 428 }, 382 429 kGameTypeGob2, 383 430 kFeaturesNone, 384 "intro" 431 0, 432 0 385 433 }, 386 434 { 387 435 { … … 394 442 }, 395 443 kGameTypeGob2, 396 444 kFeaturesNone, 397 "intro" 445 0, 446 0 398 447 }, 399 448 { // Supplied by goodoldgeorg in bug report #2602057 400 449 { … … 407 456 }, 408 457 kGameTypeGob2, 409 458 kFeaturesNone, 410 "intro" 459 0, 460 0 411 461 }, 412 462 { // Supplied by bgk in bug report #1706861 413 463 { … … 420 470 }, 421 471 kGameTypeGob2, 422 472 kFeaturesNone, 423 "intro" 473 0, 474 0 424 475 }, 425 476 { // Supplied by fac76 in bug report #1673397 426 477 { … … 437 488 }, 438 489 kGameTypeGob2, 439 490 kFeaturesAdlib, 440 "intro" 491 0, 492 0 441 493 }, 442 494 { // Supplied by koalet in bug report #2478585 443 495 { … … 454 506 }, 455 507 kGameTypeGob2, 456 508 kFeaturesAdlib, 457 "intro" 509 0, 510 0 458 511 }, 459 512 { 460 513 { … … 467 520 }, 468 521 kGameTypeGob2, 469 522 kFeaturesAdlib, 470 "intro" 523 0, 524 0 471 525 }, 472 526 { 473 527 { … … 480 534 }, 481 535 kGameTypeGob2, 482 536 kFeaturesAdlib, 483 "intro" 537 0, 538 0 484 539 }, 485 540 { // Supplied by raziel_ in bug report #1891867 486 541 { … … 493 548 }, 494 549 kGameTypeGob2, 495 550 kFeaturesAdlib, 496 "intro" 551 0, 552 0 497 553 }, 498 554 { 499 555 { … … 506 562 }, 507 563 kGameTypeGob2, 508 564 kFeaturesAdlib, 509 "intro" 565 0, 566 0 510 567 }, 511 568 { // Supplied by blackwhiteeagle in bug report #1605235 512 569 { … … 519 576 }, 520 577 kGameTypeGob2, 521 578 kFeaturesAdlib, 522 "intro" 579 0, 580 0 523 581 }, 524 582 { 525 583 { … … 532 590 }, 533 591 kGameTypeGob2, 534 592 kFeaturesAdlib, 535 "intro" 593 0, 594 0 536 595 }, 537 596 { // Supplied by goodoldgeorg in bug report #2602017 538 597 { … … 545 604 }, 546 605 kGameTypeGob2, 547 606 kFeaturesAdlib, 548 "intro" 607 0, 608 0 549 609 }, 550 610 { 551 611 { … … 558 618 }, 559 619 kGameTypeGob2, 560 620 kFeaturesAdlib, 561 "intro" 621 0, 622 0 562 623 }, 563 624 { // Supplied by arcepi in bug report #1659884 564 625 { … … 571 632 }, 572 633 kGameTypeGob2, 573 634 kFeaturesAdlib, 574 "intro" 635 0, 636 0 575 637 }, 576 638 { 577 639 { … … 584 646 }, 585 647 kGameTypeGob2, 586 648 kFeaturesCD, 587 "intro" 649 0, 650 0 588 651 }, 589 652 { 590 653 { … … 597 660 }, 598 661 kGameTypeGob2, 599 662 kFeaturesCD, 600 "intro" 663 0, 664 0 601 665 }, 602 666 { 603 667 { … … 610 674 }, 611 675 kGameTypeGob2, 612 676 kFeaturesCD, 613 "intro" 677 0, 678 0 614 679 }, 615 680 { 616 681 { … … 623 688 }, 624 689 kGameTypeGob2, 625 690 kFeaturesCD, 626 "intro" 691 0, 692 0 627 693 }, 628 694 { 629 695 { … … 636 702 }, 637 703 kGameTypeGob2, 638 704 kFeaturesCD, 639 "intro" 705 0, 706 0 640 707 }, 641 708 { 642 709 { … … 649 716 }, 650 717 kGameTypeGob2, 651 718 kFeaturesCD, 652 "intro" 719 0, 720 0 653 721 }, 654 722 { 655 723 { … … 662 730 }, 663 731 kGameTypeGob2, 664 732 kFeaturesAdlib, 665 "usa" 733 "intro.stk", 734 "usa.tot" 666 735 }, 667 736 { 668 737 { … … 675 744 }, 676 745 kGameTypeGob2, 677 746 kFeaturesAdlib, 678 "intro" 747 0, 748 0 679 749 }, 680 750 { 681 751 { … … 688 758 }, 689 759 kGameTypeGob2, 690 760 kFeaturesNone, 691 "intro" 761 0, 762 0 692 763 }, 693 764 { // Supplied by polluks in bug report #1895126 694 765 { … … 701 772 }, 702 773 kGameTypeGob2, 703 774 kFeaturesNone, 704 "intro" 775 0, 776 0 705 777 }, 778 { 779 { 780 "gob2", 781 "", 782 { 783 {"intro.stk", 0, "285d7340f98ebad65d465585da12910b", 837286}, 784 {"musmac1.mid", 0, "834e55205b710d0af5f14a6f2320dd8e", 8661}, 785 {NULL, 0, NULL, 0} 786 }, 787 FR_FRA, 788 kPlatformWindows, 789 ADGF_NO_FLAGS 790 }, 791 kGameTypeGob2, 792 kFeaturesAdlib, 793 0, 794 0 795 }, 706 796 { // Supplied by vampir_raziel in bug report #1658373 707 797 { 708 798 "ween", … … 718 808 }, 719 809 kGameTypeWeen, 720 810 kFeaturesNone, 721 "intro" 811 0, 812 0 722 813 }, 723 814 { // Supplied by vampir_raziel in bug report #1658373 724 815 { … … 731 822 }, 732 823 kGameTypeWeen, 733 824 kFeaturesNone, 734 "intro" 825 0, 826 0 735 827 }, 736 828 { // Supplied by vampir_raziel in bug report #1658373 737 829 { … … 744 836 }, 745 837 kGameTypeWeen, 746 838 kFeaturesNone, 747 "intro" 839 0, 840 0 748 841 }, 749 842 { // Supplied by vampir_raziel in bug report #1658373 750 843 { … … 757 850 }, 758 851 kGameTypeWeen, 759 852 kFeaturesNone, 760 "intro" 853 0, 854 0 761 855 }, 762 856 { // Supplied by goodoldgeorg in bug report #2563539 763 857 { … … 774 868 }, 775 869 kGameTypeWeen, 776 870 kFeaturesNone, 777 "intro" 871 0, 872 0 778 873 }, 779 874 { // Supplied by pwigren in bug report #1764174 780 875 { … … 791 886 }, 792 887 kGameTypeWeen, 793 888 kFeaturesNone, 794 "intro" 889 0, 890 0 795 891 }, 796 892 { 797 893 { … … 804 900 }, 805 901 kGameTypeWeen, 806 902 kFeaturesNone, 807 "intro" 903 0, 904 0 808 905 }, 809 906 { 810 907 { … … 817 914 }, 818 915 kGameTypeWeen, 819 916 kFeaturesAdlib, 820 "intro" 917 0, 918 0 821 919 }, 822 920 { 823 921 { … … 830 928 }, 831 929 kGameTypeWeen, 832 930 kFeaturesAdlib, 833 "intro" 931 0, 932 0 834 933 }, 835 934 { // Supplied by cybot_tmin in bug report #1667743 836 935 { … … 843 942 }, 844 943 kGameTypeWeen, 845 944 kFeaturesAdlib, 846 "intro" 945 0, 946 0 847 947 }, 848 948 { 849 949 { … … 856 956 }, 857 957 kGameTypeWeen, 858 958 kFeaturesAdlib, 859 "intro" 959 0, 960 0 860 961 }, 861 962 { // Supplied by cartman_ on #scummvm 862 963 { … … 869 970 }, 870 971 kGameTypeWeen, 871 972 kFeaturesAdlib, 872 "intro" 973 0, 974 0 873 975 }, 874 976 { // Supplied by glorfindel in bugreport #1722142 875 977 { … … 882 984 }, 883 985 kGameTypeWeen, 884 986 kFeaturesAdlib, 885 "intro" 987 0, 988 0 886 989 }, 887 990 { 888 991 { … … 895 998 }, 896 999 kGameTypeWeen, 897 1000 kFeaturesAdlib, 898 "show" 1001 "intro.stk", 1002 "show.tot" 899 1003 }, 900 1004 { 901 1005 { … … 908 1012 }, 909 1013 kGameTypeWeen, 910 1014 kFeaturesAdlib, 911 "show" 1015 "intro.stk", 1016 "show.tot" 912 1017 }, 913 1018 { 914 1019 { … … 921 1026 }, 922 1027 kGameTypeBargon, 923 1028 kFeaturesNone, 924 "intro" 1029 0, 1030 0 925 1031 }, 926 1032 { // Supplied by Trekky in the forums 927 1033 { … … 934 1040 }, 935 1041 kGameTypeBargon, 936 1042 kFeaturesNone, 937 "intro" 1043 0, 1044 0 938 1045 }, 939 1046 { // Supplied by cesardark in bug #1681649 940 1047 { … … 947 1054 }, 948 1055 kGameTypeBargon, 949 1056 kFeaturesNone, 950 "intro" 1057 0, 1058 0 951 1059 }, 952 1060 { // Supplied by paul66 in bug #1692667 953 1061 { … … 960 1068 }, 961 1069 kGameTypeBargon, 962 1070 kFeaturesNone, 963 "intro" 1071 0, 1072 0 964 1073 }, 965 1074 { // Supplied by pwigren in bugreport #1764174 966 1075 { … … 973 1082 }, 974 1083 kGameTypeBargon, 975 1084 kFeaturesNone, 976 "intro" 1085 0, 1086 0 977 1087 }, 978 1088 { // Supplied by kizkoool in bugreport #2089734 979 1089 { … … 986 1096 }, 987 1097 kGameTypeBargon, 988 1098 kFeaturesNone, 989 "intro" 1099 0, 1100 0 990 1101 }, 991 1102 { // Supplied by glorfindel in bugreport #1722142 992 1103 { … … 999 1110 }, 1000 1111 kGameTypeBargon, 1001 1112 kFeaturesNone, 1002 "intro" 1113 0, 1114 0 1003 1115 }, 1004 1116 { 1005 1117 { … … 1012 1124 }, 1013 1125 kGameTypeGob2, 1014 1126 kFeaturesAdlib | kFeaturesEGA, 1015 "intro" 1127 0, 1128 0 1016 1129 }, 1017 1130 { 1018 1131 { … … 1029 1142 }, 1030 1143 kGameTypeGob2, 1031 1144 kFeaturesNone, 1032 "intro" 1145 0, 1146 0 1033 1147 }, 1034 1148 { 1035 1149 { … … 1042 1156 }, 1043 1157 kGameTypeGob2, 1044 1158 kFeaturesAdlib, 1045 "intro" 1159 0, 1160 0 1046 1161 }, 1047 1162 { 1048 1163 { … … 1055 1170 }, 1056 1171 kGameTypeLostInTime, 1057 1172 kFeaturesAdlib, 1058 "intro" 1173 0, 1174 0 1059 1175 }, 1060 1176 { // Supplied by Arshlan in the forums 1061 1177 { … … 1068 1184 }, 1069 1185 kGameTypeLostInTime, 1070 1186 kFeaturesAdlib, 1071 "intro" 1187 0, 1188 0 1072 1189 }, 1073 1190 { // Supplied by cartman_ on #scummvm 1074 1191 { … … 1081 1198 }, 1082 1199 kGameTypeLostInTime, 1083 1200 kFeaturesAdlib, 1084 "intro" 1201 0, 1202 0 1085 1203 }, 1086 1204 { // Supplied by goodoldgeorg in bug report #2105220 1087 1205 { … … 1094 1212 }, 1095 1213 kGameTypeLostInTime, 1096 1214 kFeaturesAdlib, 1097 "intro" 1215 0, 1216 0 1098 1217 }, 1099 1218 { // Supplied by koalet in bug report #2479034 1100 1219 { … … 1111 1230 }, 1112 1231 kGameTypeLostInTime, 1113 1232 kFeaturesAdlib, 1114 "intro" 1233 0, 1234 0 1115 1235 }, 1116 1236 { 1117 1237 { … … 1124 1244 }, 1125 1245 kGameTypeLostInTime, 1126 1246 kFeaturesCD, 1127 "intro" 1247 0, 1248 0 1128 1249 }, 1129 1250 { 1130 1251 { … … 1137 1258 }, 1138 1259 kGameTypeLostInTime, 1139 1260 kFeaturesCD, 1140 "intro" 1261 0, 1262 0 1141 1263 }, 1142 1264 { 1143 1265 { … … 1150 1272 }, 1151 1273 kGameTypeLostInTime, 1152 1274 kFeaturesCD, 1153 "intro" 1275 0, 1276 0 1154 1277 }, 1155 1278 { 1156 1279 { … … 1163 1286 }, 1164 1287 kGameTypeLostInTime, 1165 1288 kFeaturesCD, 1166 "intro" 1289 0, 1290 0 1167 1291 }, 1168 1292 { 1169 1293 { … … 1176 1300 }, 1177 1301 kGameTypeLostInTime, 1178 1302 kFeaturesCD, 1179 "intro" 1303 0, 1304 0 1180 1305 }, 1181 1306 { 1182 1307 { … … 1189 1314 }, 1190 1315 kGameTypeLostInTime, 1191 1316 kFeaturesCD, 1192 "intro" 1317 0, 1318 0 1193 1319 }, 1194 1320 { // Supplied by SiRoCs in bug report #2093672 1195 1321 { … … 1202 1328 }, 1203 1329 kGameTypeLostInTime, 1204 1330 kFeaturesCD, 1205 "intro" 1331 0, 1332 0 1206 1333 }, 1207 1334 { // Supplied by SiRoCs in bug report #2093672 1208 1335 { … … 1215 1342 }, 1216 1343 kGameTypeLostInTime, 1217 1344 kFeaturesCD, 1218 "intro" 1345 0, 1346 0 1219 1347 }, 1220 1348 { // Supplied by SiRoCs in bug report #2093672 1221 1349 { … … 1228 1356 }, 1229 1357 kGameTypeLostInTime, 1230 1358 kFeaturesCD, 1231 "intro" 1359 0, 1360 0 1232 1361 }, 1233 1362 { // Supplied by SiRoCs in bug report #2093672 1234 1363 { … … 1241 1370 }, 1242 1371 kGameTypeLostInTime, 1243 1372 kFeaturesCD, 1244 "intro" 1373 0, 1374 0 1245 1375 }, 1246 1376 { // Supplied by SiRoCs in bug report #2093672 1247 1377 { … … 1254 1384 }, 1255 1385 kGameTypeLostInTime, 1256 1386 kFeaturesCD, 1257 "intro" 1387 0, 1388 0 1258 1389 }, 1259 1390 { // Supplied by SiRoCs in bug report #2093672 1260 1391 { … … 1267 1398 }, 1268 1399 kGameTypeLostInTime, 1269 1400 kFeaturesCD, 1270 "intro" 1401 0, 1402 0 1271 1403 }, 1272 1404 { 1273 1405 { 1406 "fascination", 1407 "CD Version (Censored)", 1408 AD_ENTRY1s("disk0.stk","9c61e9c22077f72921f07153e37ccf01",545952), 1409 UNK_LANG, 1410 kPlatformPC, 1411 ADGF_NO_FLAGS, 1412 }, 1413 kGameTypeFascination, 1414 kFeaturesCD, 1415 "disk0.stk", 1416 "intro.tot" 1417 }, 1418 { 1419 { 1420 "fascination", 1421 "VGA", 1422 AD_ENTRY1s("disk0.stk","a50a8495e1b2d67699fb562cb98fc3e2",1064387), 1423 UNK_LANG, 1424 kPlatformPC, 1425 ADGF_NO_FLAGS, 1426 }, 1427 kGameTypeFascination, 1428 kFeaturesNone, 1429 "disk0.stk", 1430 "intro.tot" 1431 }, 1432 { 1433 { 1434 "fascination", 1435 "VGA", 1436 AD_ENTRY1s("disk0.stk","e8ab4f200a2304849f462dc901705599",183337), 1437 UNK_LANG, 1438 kPlatformPC, 1439 ADGF_NO_FLAGS, 1440 }, 1441 kGameTypeFascination, 1442 kFeaturesNone, 1443 "disk0.stk", 1444 "intro.tot" 1445 }, 1446 { 1447 { 1448 "geisha", 1449 "", 1450 AD_ENTRY1s("disk1.stk","6eebbb98ad90cd3c44549fc2ab30f632", 212153), 1451 UNK_LANG, 1452 kPlatformPC, 1453 ADGF_NO_FLAGS, 1454 }, 1455 kGameTypeGeisha, 1456 kFeaturesNone, 1457 "disk1.stk", 1458 "intro.0ot" 1459 }, 1460 { 1461 { 1274 1462 "lostintime", 1275 1463 "Demo", 1276 1464 AD_ENTRY1("demo.stk", "c06f8cc20eb239d4c71f225ce3093edf"), … … 1280 1468 }, 1281 1469 kGameTypeLostInTime, 1282 1470 kFeaturesAdlib, 1283 "demo" 1471 "demo.stk", 1472 "demo.tot" 1284 1473 }, 1285 1474 { 1286 1475 { … … 1293 1482 }, 1294 1483 kGameTypeLostInTime, 1295 1484 kFeaturesAdlib, 1296 "demo" 1485 "demo.stk", 1486 "demo.tot" 1297 1487 }, 1298 1488 { 1299 1489 { … … 1306 1496 }, 1307 1497 kGameTypeGob3, 1308 1498 kFeaturesAdlib, 1309 "intro" 1499 0, 1500 0 1310 1501 }, 1311 1502 { // Supplied by raziel_ in bug report #1891869 1312 1503 { … … 1319 1510 }, 1320 1511 kGameTypeGob3, 1321 1512 kFeaturesAdlib, 1322 "intro" 1513 0, 1514 0 1323 1515 }, 1324 1516 { // Supplied by fac76 in bug report #1742716 1325 1517 { … … 1336 1528 }, 1337 1529 kGameTypeGob3, 1338 1530 kFeaturesAdlib, 1339 "intro" 1531 0, 1532 0 1340 1533 }, 1341 1534 { 1342 1535 { … … 1349 1542 }, 1350 1543 kGameTypeGob3, 1351 1544 kFeaturesAdlib, 1352 "intro" 1545 0, 1546 0 1353 1547 }, 1354 1548 { // Supplied by paul66 in bug report #1652352 1355 1549 { … … 1362 1556 }, 1363 1557 kGameTypeGob3, 1364 1558 kFeaturesAdlib, 1365 "intro" 1559 0, 1560 0 1366 1561 }, 1367 1562 { 1368 1563 { … … 1375 1570 }, 1376 1571 kGameTypeGob3, 1377 1572 kFeaturesAdlib, 1378 "intro" 1573 0, 1574 0 1379 1575 }, 1380 1576 { // Supplied by Paranoimia on #scummvm 1381 1577 { … … 1388 1584 }, 1389 1585 kGameTypeGob3, 1390 1586 kFeaturesAdlib, 1391 "intro" 1587 0, 1588 0 1392 1589 }, 1393 1590 { 1394 1591 { … … 1401 1598 }, 1402 1599 kGameTypeGob3, 1403 1600 kFeaturesAdlib, 1404 "intro" 1601 0, 1602 0 1405 1603 }, 1406 1604 { 1407 1605 { … … 1414 1612 }, 1415 1613 kGameTypeGob3, 1416 1614 kFeaturesAdlib, 1417 "intro" 1615 0, 1616 0 1418 1617 }, 1419 1618 { // Supplied by SiRoCs in bug report #2098621 1420 1619 { … … 1427 1626 }, 1428 1627 kGameTypeGob3, 1429 1628 kFeaturesAdlib, 1430 "intro" 1629 0, 1630 0 1431 1631 }, 1432 1632 { 1433 1633 { … … 1440 1640 }, 1441 1641 kGameTypeGob3, 1442 1642 kFeaturesNone, 1443 "menu" 1643 "intro.stk", 1644 "menu.tot" 1444 1645 }, 1445 1646 { 1446 1647 { … … 1453 1654 }, 1454 1655 kGameTypeGob3, 1455 1656 kFeaturesNone, 1456 "menu" 1657 "intro.stk", 1658 "menu.tot" 1457 1659 }, 1458 1660 { 1459 1661 { … … 1466 1668 }, 1467 1669 kGameTypeGob3, 1468 1670 kFeaturesCD, 1469 "intro" 1671 0, 1672 0 1470 1673 }, 1471 1674 { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230 1472 1675 { … … 1479 1682 }, 1480 1683 kGameTypeGob3, 1481 1684 kFeaturesCD, 1482 "intro" 1685 0, 1686 0 1483 1687 }, 1484 1688 { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230 1485 1689 { … … 1492 1696 }, 1493 1697 kGameTypeGob3, 1494 1698 kFeaturesCD, 1495 "intro" 1699 0, 1700 0 1496 1701 }, 1497 1702 { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230 1498 1703 { … … 1505 1710 }, 1506 1711 kGameTypeGob3, 1507 1712 kFeaturesCD, 1508 "intro" 1713 0, 1714 0 1509 1715 }, 1510 1716 { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230 1511 1717 { … … 1518 1724 }, 1519 1725 kGameTypeGob3, 1520 1726 kFeaturesCD, 1521 "intro" 1727 0, 1728 0 1522 1729 }, 1523 1730 { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230 1524 1731 { … … 1531 1738 }, 1532 1739 kGameTypeGob3, 1533 1740 kFeaturesCD, 1534 "intro" 1741 0, 1742 0 1535 1743 }, 1536 1744 { 1537 1745 { … … 1544 1752 }, 1545 1753 kGameTypeGob3, 1546 1754 kFeaturesAdlib, 1547 "intro" 1755 0, 1756 0 1548 1757 }, 1549 1758 { 1550 1759 { … … 1557 1766 }, 1558 1767 kGameTypeGob3, 1559 1768 kFeaturesAdlib, 1560 "intro" 1769 0, 1770 0 1561 1771 }, 1562 1772 { 1563 1773 { … … 1570 1780 }, 1571 1781 kGameTypeGob3, 1572 1782 kFeaturesAdlib, 1573 "intro" 1783 0, 1784 0 1574 1785 }, 1575 1786 { 1576 1787 { … … 1583 1794 }, 1584 1795 kGameTypeGob3, 1585 1796 kFeaturesAdlib, 1586 "intro" 1797 0, 1798 0 1587 1799 }, 1588 1800 { 1589 1801 { 1802 "gob3", 1803 "", 1804 { 1805 {"intro.stk", 0, "edd7403e5dc2a14459d2665a4c17714d", 209534}, 1806 {"musmac1.mid", 0, "948c546cad3a9de5bff3fe4107c82bf1", 6404}, 1807 {NULL, 0, NULL, 0} 1808 }, 1809 FR_FRA, 1810 kPlatformWindows, 1811 ADGF_NO_FLAGS 1812 }, 1813 kGameTypeGob3, 1814 kFeaturesAdlib, 1815 0, 1816 0 1817 }, 1818 { 1819 { 1590 1820 "inca2", 1591 1821 "", 1592 1822 AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828), … … 1596 1826 }, 1597 1827 kGameTypeInca2, 1598 1828 kFeaturesCD, 1599 "intro" 1829 0, 1830 0 1600 1831 }, 1601 1832 { 1602 1833 { … … 1609 1840 }, 1610 1841 kGameTypeInca2, 1611 1842 kFeaturesCD, 1612 "intro" 1843 0, 1844 0 1613 1845 }, 1614 1846 { 1615 1847 { … … 1622 1854 }, 1623 1855 kGameTypeInca2, 1624 1856 kFeaturesCD, 1625 "intro" 1857 0, 1858 0 1626 1859 }, 1627 1860 { 1628 1861 { … … 1635 1868 }, 1636 1869 kGameTypeInca2, 1637 1870 kFeaturesCD, 1638 "intro" 1871 0, 1872 0 1639 1873 }, 1640 1874 { 1641 1875 { … … 1648 1882 }, 1649 1883 kGameTypeInca2, 1650 1884 kFeaturesCD, 1651 "intro" 1885 0, 1886 0 1652 1887 }, 1653 1888 { 1654 1889 { … … 1661 1896 }, 1662 1897 kGameTypeInca2, 1663 1898 kFeaturesAdlib, 1664 "intro" 1899 0, 1900 0 1665 1901 }, 1666 1902 { 1667 1903 { … … 1674 1910 }, 1675 1911 kGameTypeInca2, 1676 1912 kFeaturesAdlib, 1677 "intro" 1913 0, 1914 0 1678 1915 }, 1679 1916 { 1680 1917 { … … 1687 1924 }, 1688 1925 kGameTypeInca2, 1689 1926 kFeaturesAdlib, 1690 "intro" 1927 0, 1928 0 1691 1929 }, 1692 1930 { 1693 1931 { … … 1700 1938 }, 1701 1939 kGameTypeWoodruff, 1702 1940 kFeatures640, 1703 "intro" 1941 0, 1942 0 1704 1943 }, 1705 1944 { 1706 1945 { … … 1713 1952 }, 1714 1953 kGameTypeWoodruff, 1715 1954 kFeatures640, 1716 "intro" 1955 0, 1956 0 1717 1957 }, 1718 1958 { 1719 1959 { … … 1726 1966 }, 1727 1967 kGameTypeWoodruff, 1728 1968 kFeatures640, 1729 "intro" 1969 0, 1970 0 1730 1971 }, 1731 1972 { 1732 1973 { … … 1739 1980 }, 1740 1981 kGameTypeWoodruff, 1741 1982 kFeatures640, 1742 "intro" 1983 0, 1984 0 1743 1985 }, 1744 1986 { 1745 1987 { … … 1752 1994 }, 1753 1995 kGameTypeWoodruff, 1754 1996 kFeatures640, 1755 "intro" 1997 0, 1998 0 1756 1999 }, 1757 2000 { 1758 2001 { … … 1765 2008 }, 1766 2009 kGameTypeWoodruff, 1767 2010 kFeatures640, 1768 "intro" 2011 0, 2012 0 1769 2013 }, 1770 2014 { 1771 2015 { … … 1778 2022 }, 1779 2023 kGameTypeWoodruff, 1780 2024 kFeatures640, 1781 "intro" 2025 0, 2026 0 1782 2027 }, 1783 2028 { 1784 2029 { … … 1791 2036 }, 1792 2037 kGameTypeWoodruff, 1793 2038 kFeatures640, 1794 "intro" 2039 0, 2040 0 1795 2041 }, 1796 2042 { 1797 2043 { … … 1804 2050 }, 1805 2051 kGameTypeWoodruff, 1806 2052 kFeatures640, 1807 "intro" 2053 0, 2054 0 1808 2055 }, 1809 2056 { 1810 2057 { … … 1817 2064 }, 1818 2065 kGameTypeWoodruff, 1819 2066 kFeatures640, 1820 "intro" 2067 0, 2068 0 1821 2069 }, 1822 2070 { 1823 2071 { … … 1830 2078 }, 1831 2079 kGameTypeWoodruff, 1832 2080 kFeatures640, 1833 "intro" 2081 0, 2082 0 1834 2083 }, 1835 2084 { // Supplied by jvprat on #scummvm 1836 2085 { … … 1843 2092 }, 1844 2093 kGameTypeWoodruff, 1845 2094 kFeatures640, 1846 "intro" 2095 0, 2096 0 1847 2097 }, 1848 2098 { // Supplied by jvprat on #scummvm 1849 2099 { … … 1856 2106 }, 1857 2107 kGameTypeWoodruff, 1858 2108 kFeatures640, 1859 "intro" 2109 0, 2110 0 1860 2111 }, 1861 2112 { // Supplied by jvprat on #scummvm 1862 2113 { … … 1869 2120 }, 1870 2121 kGameTypeWoodruff, 1871 2122 kFeatures640, 1872 "intro" 2123 0, 2124 0 1873 2125 }, 1874 2126 { // Supplied by jvprat on #scummvm 1875 2127 { … … 1882 2134 }, 1883 2135 kGameTypeWoodruff, 1884 2136 kFeatures640, 1885 "intro" 2137 0, 2138 0 1886 2139 }, 1887 2140 { // Supplied by jvprat on #scummvm 1888 2141 { … … 1895 2148 }, 1896 2149 kGameTypeWoodruff, 1897 2150 kFeatures640, 1898 "intro" 2151 0, 2152 0 1899 2153 }, 1900 2154 { // Supplied by Hkz on #scummvm 1901 2155 { … … 1908 2162 }, 1909 2163 kGameTypeWoodruff, 1910 2164 kFeatures640, 1911 "intro" 2165 0, 2166 0 1912 2167 }, 1913 2168 { // Supplied by Hkz on #scummvm 1914 2169 { … … 1921 2176 }, 1922 2177 kGameTypeWoodruff, 1923 2178 kFeatures640, 1924 "intro" 2179 0, 2180 0 1925 2181 }, 1926 2182 { // Supplied by Hkz on #scummvm 1927 2183 { … … 1934 2190 }, 1935 2191 kGameTypeWoodruff, 1936 2192 kFeatures640, 1937 "intro" 2193 0, 2194 0 1938 2195 }, 1939 2196 { // Supplied by DjDiabolik in bug report #1971294 1940 2197 { … … 1947 2204 }, 1948 2205 kGameTypeWoodruff, 1949 2206 kFeatures640, 1950 "intro" 2207 0, 2208 0 1951 2209 }, 1952 2210 { // Supplied by DjDiabolik in bug report #1971294 1953 2211 { … … 1960 2218 }, 1961 2219 kGameTypeWoodruff, 1962 2220 kFeatures640, 1963 "intro" 2221 0, 2222 0 1964 2223 }, 1965 2224 { // Supplied by DjDiabolik in bug report #1971294 1966 2225 { … … 1973 2232 }, 1974 2233 kGameTypeWoodruff, 1975 2234 kFeatures640, 1976 "intro" 2235 0, 2236 0 1977 2237 }, 1978 2238 { // Supplied by DjDiabolik in bug report #1971294 1979 2239 { … … 1986 2246 }, 1987 2247 kGameTypeWoodruff, 1988 2248 kFeatures640, 1989 "intro" 2249 0, 2250 0 1990 2251 }, 1991 2252 { // Supplied by DjDiabolik in bug report #1971294 1992 2253 { … … 1999 2260 }, 2000 2261 kGameTypeWoodruff, 2001 2262 kFeatures640, 2002 "intro" 2263 0, 2264 0 2003 2265 }, 2004 2266 { // Supplied by goodoldgeorg in bug report #2098838 2005 2267 { … … 2012 2274 }, 2013 2275 kGameTypeWoodruff, 2014 2276 kFeatures640, 2015 "intro" 2277 0, 2278 0 2016 2279 }, 2017 2280 { 2018 2281 { … … 2025 2288 }, 2026 2289 kGameTypeDynasty, 2027 2290 kFeatures640, 2028 "intro" 2291 0, 2292 0 2029 2293 }, 2030 2294 { 2031 2295 { … … 2038 2302 }, 2039 2303 kGameTypeDynasty, 2040 2304 kFeatures640, 2041 "intro" 2305 0, 2306 0 2042 2307 }, 2043 2308 { 2044 2309 { … … 2051 2316 }, 2052 2317 kGameTypeDynasty, 2053 2318 kFeatures640, 2054 "intro" 2319 0, 2320 0 2055 2321 }, 2056 2322 { 2057 2323 { … … 2064 2330 }, 2065 2331 kGameTypeDynasty, 2066 2332 kFeatures640, 2067 "intro" 2333 0, 2334 0 2068 2335 }, 2069 2336 { 2070 2337 { 2338 "dynasty", 2339 "Demo", 2340 AD_ENTRY1s("lda1.stk", "0e56a899357cbc0bf503260fd2dd634e", 15032774), 2341 UNK_LANG, 2342 kPlatformWindows, 2343 ADGF_DEMO 2344 }, 2345 kGameTypeDynasty, 2346 kFeatures640, 2347 "lda1.stk", 2348 "intro.tot" 2349 }, 2350 { 2351 { 2071 2352 "urban", 2072 2353 "", 2073 2354 AD_ENTRY1s("intro.stk", "3ab2c542bd9216ae5d02cc6f45701ae1", 1252436), … … 2077 2358 }, 2078 2359 kGameTypeUrban, 2079 2360 kFeatures640, 2080 "intro" 2361 0, 2362 0 2081 2363 }, 2364 { 2365 { 2366 "spirou", 2367 "", 2368 AD_ENTRY1s("intro2.stk", "5e214cec5041d6a4a810feba8ddaaa92",247576), 2369 UNK_LANG, 2370 kPlatformPC, 2371 ADGF_NO_FLAGS 2372 }, 2373 kGameTypeSpirou, 2374 kFeatures640, 2375 "intro2.stk" 2376 "intro.tot" 2377 }, 2378 { 2379 { 2380 "archibald", 2381 "", 2382 AD_ENTRY1s("intro2.stk", "9aa412f5b8a1ee1761cb7b26e97fbd56",247094), 2383 UNK_LANG, 2384 kPlatformWindows, 2385 ADGF_NO_FLAGS 2386 }, 2387 kGameTypeArchibald, 2388 kFeatures640, 2389 "intro2.stk" 2390 "intro.tot" 2391 }, 2082 2392 { // Supplied by gamin in the forums 2083 2393 { 2084 2394 "urban", … … 2090 2400 }, 2091 2401 kGameTypeUrban, 2092 2402 kFeatures640, 2093 "intro" 2403 0, 2404 0 2094 2405 }, 2406 { 2407 { 2408 "adibou4", 2409 "", 2410 AD_ENTRY1s("intro.stk", "a3c35d19b2d28ea261d96321d208cb5a", 6021466), 2411 FR_FRA, 2412 kPlatformPC, 2413 ADGF_NO_FLAGS 2414 }, 2415 kGameTypeAdibou4, 2416 kFeatures640, 2417 0, 2418 0 2419 }, 2095 2420 { AD_TABLE_END_MARKER, kGameTypeNone, kFeaturesNone, NULL } 2096 2421 }; 2097 2422 … … 2107 2432 }, 2108 2433 kGameTypeGob1, 2109 2434 kFeaturesNone, 2110 "intro" 2435 0, 2436 0 2111 2437 }, 2112 2438 { 2113 2439 { … … 2120 2446 }, 2121 2447 kGameTypeGob1, 2122 2448 kFeaturesCD, 2123 "intro" 2449 0, 2450 0 2124 2451 }, 2125 2452 { 2126 2453 { … … 2133 2460 }, 2134 2461 kGameTypeGob2, 2135 2462 kFeaturesAdlib, 2136 "intro" 2463 0, 2464 0 2137 2465 }, 2138 2466 { 2139 2467 { … … 2146 2474 }, 2147 2475 kGameTypeGob2, 2148 2476 kFeaturesAdlib, 2149 "intro" 2477 0, 2478 0 2150 2479 }, 2151 2480 { 2152 2481 { … … 2159 2488 }, 2160 2489 kGameTypeGob2, 2161 2490 kFeaturesCD, 2162 "intro" 2491 0, 2492 0 2163 2493 }, 2164 2494 { 2165 2495 { … … 2172 2502 }, 2173 2503 kGameTypeBargon, 2174 2504 kFeaturesNone, 2175 "intro" 2505 0, 2506 0 2176 2507 }, 2177 2508 { 2178 2509 { … … 2185 2516 }, 2186 2517 kGameTypeGob3, 2187 2518 kFeaturesAdlib, 2188 "intro" 2519 0, 2520 0 2189 2521 }, 2190 2522 { 2191 2523 { … … 2198 2530 }, 2199 2531 kGameTypeGob3, 2200 2532 kFeaturesCD, 2201 "intro" 2533 0, 2534 0 2202 2535 }, 2203 2536 { 2204 2537 { … … 2211 2544 }, 2212 2545 kGameTypeWoodruff, 2213 2546 kFeatures640, 2214 "intro" 2547 0, 2548 0 2215 2549 }, 2216 2550 { 2217 2551 { … … 2224 2558 }, 2225 2559 kGameTypeLostInTime, 2226 2560 kFeaturesAdlib, 2227 "intro" 2561 0, 2562 0 2228 2563 }, 2229 2564 { 2230 2565 { … … 2237 2572 }, 2238 2573 kGameTypeLostInTime, 2239 2574 kFeaturesAdlib, 2240 "intro" 2575 0, 2576 0 2241 2577 }, 2242 2578 { 2243 2579 { … … 2250 2586 }, 2251 2587 kGameTypeLostInTime, 2252 2588 kFeaturesCD, 2253 "intro" 2589 0, 2590 0 2254 2591 }, 2255 2592 { 2256 2593 { … … 2263 2600 }, 2264 2601 kGameTypeUrban, 2265 2602 kFeaturesCD, 2266 "intro" 2267 } 2603 0, 2604 0 2605 }, 2606 { 2607 { 2608 "fascination", 2609 "unknown", 2610 AD_ENTRY1(0, 0), 2611 UNK_LANG, 2612 kPlatformPC, 2613 ADGF_NO_FLAGS 2614 }, 2615 kGameTypeFascination, 2616 kFeaturesNone, 2617 "disk0.stk", 2618 "intro.tot" 2619 }, 2620 { 2621 { 2622 "geisha", 2623 "unknown", 2624 AD_ENTRY1(0, 0), 2625 UNK_LANG, 2626 kPlatformPC, 2627 ADGF_NO_FLAGS 2628 }, 2629 kGameTypeGeisha, 2630 kFeaturesNone, 2631 "disk1.stk", 2632 "intro.0ot" 2633 }, 2634 { 2635 { 2636 "adibou4", 2637 "", 2638 AD_ENTRY1(0, 0), 2639 UNK_LANG, 2640 kPlatformPC, 2641 ADGF_NO_FLAGS 2642 }, 2643 kGameTypeAdibou4, 2644 kFeatures640, 2645 "adif41.stk", 2646 "intro.tot" 2647 }, 2268 2648 }; 2269 2649 2270 2650 static const ADFileBasedFallback fileBased[] = { … … 2282 2662 { &fallbackDescs[10], { "intro.stk", "commun1.itk", "musmac1.mid", 0 } }, 2283 2663 { &fallbackDescs[11], { "intro.stk", "commun1.itk", "lost.lic", 0 } }, 2284 2664 { &fallbackDescs[12], { "intro.stk", "cd1.itk", "objet1.itk", 0 } }, 2665 { &fallbackDescs[13], { "disk0.stk", "disk1.stk", "disk2.stk", "disk3.stk", 0 } }, 2666 { &fallbackDescs[14], { "disk1.stk", "disk2.stk", "disk3.stk", 0 } }, 2667 { &fallbackDescs[15], { "adif41.stk", "adim41.stk", 0 } }, 2285 2668 { 0, { 0 } } 2286 2669 }; 2287 2670 … … 2350 2733 void GobEngine::initGame(const GOBGameDescription *gd) { 2351 2734 if (gd->startTotBase == 0) { 2352 2735 _startTot = new char[10]; 2353 _start Tot0 = new char[11];2736 _startStk = new char[10]; 2354 2737 strcpy(_startTot, "intro.tot"); 2355 strcpy(_start Tot0, "intro0.tot");2738 strcpy(_startStk, "intro.stk"); 2356 2739 } else { 2357 _startTot = new char[strlen(gd->startTotBase) + 5];2358 _start Tot0 = new char[strlen(gd->startTotBase) + 6];2740 _startTot = new char[strlen(gd->startTotBase) + 1]; 2741 _startStk = new char[strlen(gd->startStkBase) + 1]; 2359 2742 strcpy(_startTot, gd->startTotBase); 2360 strcpy(_startTot0, gd->startTotBase); 2361 strcat(_startTot, ".tot"); 2362 strcat(_startTot0, "0.tot"); 2743 strcpy(_startStk, gd->startStkBase); 2363 2744 } 2364 2365 2745 _gameType = gd->gameType; 2366 2746 _features = gd->features; 2367 2747 _language = gd->desc.language; 2368 2748 _platform = gd->desc.platform; 2369 2749 } 2370 2371 2750 } // End of namespace Gob -
engines/gob/draw.h
211 211 virtual ~Draw_Bargon() {} 212 212 }; 213 213 214 class Draw_Fascin: public Draw_v2 { 215 public: 216 virtual void initScreen(); 217 218 Draw_Fascin(GobEngine *vm); 219 virtual ~Draw_Fascin() {} 220 }; 221 214 222 // Draw operations 215 223 216 224 #define DRAW_BLITSURF 0 -
engines/gob/draw_fascin.cpp
1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 * $URL$ 22 * $Id$ 23 * 24 */ 25 26 #include "gob/gob.h" 27 #include "gob/draw.h" 28 #include "gob/global.h" 29 #include "gob/video.h" 30 31 namespace Gob { 32 33 Draw_Fascin::Draw_Fascin(GobEngine *vm) : Draw_v2(vm) { 34 } 35 36 void Draw_Fascin::initScreen(void) { 37 _vm->_global->_videoMode = 0x14; 38 _vm->_video->_surfWidth = 640; 39 _vm->_video->initPrimary(_vm->_global->_videoMode); 40 41 Draw_v2::initScreen(); 42 } 43 44 } // End of namespace Gob -
engines/gob/game.cpp
Property changes on: engines\gob\draw_fascin.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Date Rev Author URL Id Added: svn:eol-style + native
557 557 _vm->_inter->_variables = 0; 558 558 559 559 strncpy0(_curTotFile, newTotFile, 9); 560 strcat(_curTotFile, ".TOT"); 560 if (_vm->getGameType() == kGameTypeGeisha) 561 strcat(_curTotFile, ".0OT"); 562 else 563 strcat(_curTotFile, ".TOT"); 561 564 562 565 if (_vm->_inter->_terminate != 0) 563 566 return; -
engines/gob/game_v1.cpp
71 71 _vm->_draw->_fontToSprite[i].height = -1; 72 72 } 73 73 74 if (_vm->getPlatform() == Common::kPlatformMacintosh) 74 if ((_vm->getPlatform() == Common::kPlatformMacintosh)|| 75 (_vm->getPlatform() == Common::kPlatformWindows)) 75 76 _vm->_sound->adlibStop(); 76 77 else 77 78 _vm->_sound->cdStop(); -
engines/gob/gob.cpp
106 106 // Stop all mixer streams (except for the permanent ones). 107 107 _vm->_mixer->stopAll(); 108 108 109 delete[] _startStk; 109 110 delete[] _startTot; 110 delete[] _startTot0;111 111 } 112 112 113 113 const char *GobEngine::getLangDesc(int16 language) const { … … 249 249 } 250 250 _global->_languageWanted = _global->_language; 251 251 252 _init->initGame( 0);252 _init->initGame(); 253 253 254 254 return Common::kNoError; 255 255 } … … 285 285 _sound = new Sound(this); 286 286 287 287 switch (_gameType) { 288 case kGameTypeGob1: 289 _init = new Init_v1(this); 290 _video = new Video_v1(this); 291 _inter = new Inter_v1(this); 292 _parse = new Parse_v1(this); 293 _mult = new Mult_v1(this); 294 _draw = new Draw_v1(this); 295 _game = new Game_v1(this); 296 _map = new Map_v1(this); 297 _goblin = new Goblin_v1(this); 298 _scenery = new Scenery_v1(this); 299 break; 288 case kGameTypeGeisha: 289 case kGameTypeGob1: 290 _init = new Init_v1(this); 291 _video = new Video_v1(this); 292 _inter = new Inter_v1(this); 293 _parse = new Parse_v1(this); 294 _mult = new Mult_v1(this); 295 _draw = new Draw_v1(this); 296 _game = new Game_v1(this); 297 _map = new Map_v1(this); 298 _goblin = new Goblin_v1(this); 299 _scenery = new Scenery_v1(this); 300 break; 300 301 301 case kGameTypeGob2:302 303 304 _inter = new Inter_v2(this);305 _parse = new Parse_v2(this);306 307 308 309 310 311 312 313 302 case kGameTypeFascination: 303 _init = new Init_v2(this); 304 _video = new Video_v2(this); 305 _inter = new Inter_Fascination(this); 306 _parse = new Parse_v1(this); 307 _mult = new Mult_v2(this); 308 _draw = new Draw_v2(this); 309 _game = new Game_v2(this); 310 _map = new Map_v2(this); 311 _goblin = new Goblin_v2(this); 312 _scenery = new Scenery_v2(this); 313 _saveLoad = new SaveLoad_v2(this, _targetName.c_str()); 314 break; 314 315 315 case kGameTypeBargon:316 317 318 _inter = new Inter_Bargon(this);319 320 321 _draw = new Draw_Bargon(this);322 323 324 325 326 327 316 case kGameTypeGob2: 317 _init = new Init_v2(this); 318 _video = new Video_v2(this); 319 _inter = new Inter_v2(this); 320 _parse = new Parse_v2(this); 321 _mult = new Mult_v2(this); 322 _draw = new Draw_v2(this); 323 _game = new Game_v2(this); 324 _map = new Map_v2(this); 325 _goblin = new Goblin_v2(this); 326 _scenery = new Scenery_v2(this); 327 _saveLoad = new SaveLoad_v2(this, _targetName.c_str()); 328 break; 328 329 329 case kGameTypeWeen:330 331 332 _inter = new Inter_v2(this);333 334 335 _draw = new Draw_v2(this);336 337 338 339 340 341 330 case kGameTypeBargon: 331 _init = new Init_v2(this); 332 _video = new Video_v2(this); 333 _inter = new Inter_Bargon(this); 334 _parse = new Parse_v2(this); 335 _mult = new Mult_v2(this); 336 _draw = new Draw_Bargon(this); 337 _game = new Game_v2(this); 338 _map = new Map_v2(this); 339 _goblin = new Goblin_v2(this); 340 _scenery = new Scenery_v2(this); 341 _saveLoad = new SaveLoad_v2(this, _targetName.c_str()); 342 break; 342 343 343 case kGameTypeGob3: 344 case kGameTypeInca2: 345 _init = new Init_v3(this); 346 _video = new Video_v2(this); 347 _inter = new Inter_v3(this); 348 _parse = new Parse_v2(this); 349 _mult = new Mult_v2(this); 350 _draw = new Draw_v2(this); 351 _game = new Game_v2(this); 352 _map = new Map_v2(this); 353 _goblin = new Goblin_v3(this); 354 _scenery = new Scenery_v2(this); 355 _saveLoad = new SaveLoad_v3(this, _targetName.c_str()); 356 break; 344 case kGameTypeWeen: 345 _init = new Init_v2(this); 346 _video = new Video_v2(this); 347 _inter = new Inter_v2(this); 348 _parse = new Parse_v2(this); 349 _mult = new Mult_v2(this); 350 _draw = new Draw_v2(this); 351 _game = new Game_v2(this); 352 _map = new Map_v2(this); 353 _goblin = new Goblin_v2(this); 354 _scenery = new Scenery_v2(this); 355 _saveLoad = new SaveLoad_v2(this, _targetName.c_str()); 356 break; 357 357 358 case kGameTypeLostInTime: 359 _init = new Init_v3(this); 360 _video = new Video_v2(this); 361 _inter = new Inter_v3(this); 362 _parse = new Parse_v2(this); 363 _mult = new Mult_v2(this); 364 _draw = new Draw_v2(this); 365 _game = new Game_v2(this); 366 _map = new Map_v2(this); 367 _goblin = new Goblin_v3(this); 368 _scenery = new Scenery_v2(this); 369 _saveLoad = new SaveLoad_v3(this, _targetName.c_str(), 4768, 0, 50); 370 break; 358 case kGameTypeGob3: 359 case kGameTypeInca2: 360 _init = new Init_v3(this); 361 _video = new Video_v2(this); 362 _inter = new Inter_v3(this); 363 _parse = new Parse_v2(this); 364 _mult = new Mult_v2(this); 365 _draw = new Draw_v2(this); 366 _game = new Game_v2(this); 367 _map = new Map_v2(this); 368 _goblin = new Goblin_v3(this); 369 _scenery = new Scenery_v2(this); 370 _saveLoad = new SaveLoad_v3(this, _targetName.c_str()); 371 break; 371 372 372 case kGameTypeWoodruff:373 374 375 _inter = new Inter_v4(this);376 377 378 379 380 _map = new Map_v4(this);381 _goblin = new Goblin_v4(this);382 383 _saveLoad = new SaveLoad_v4(this, _targetName.c_str());384 373 case kGameTypeLostInTime: 374 _init = new Init_v3(this); 375 _video = new Video_v2(this); 376 _inter = new Inter_v3(this); 377 _parse = new Parse_v2(this); 378 _mult = new Mult_v2(this); 379 _draw = new Draw_v2(this); 380 _game = new Game_v2(this); 381 _map = new Map_v2(this); 382 _goblin = new Goblin_v3(this); 383 _scenery = new Scenery_v2(this); 384 _saveLoad = new SaveLoad_v3(this, _targetName.c_str(), 4768, 0, 50); 385 break; 385 386 386 case kGameTypeDynasty:387 388 389 _inter = new Inter_v5(this);390 391 392 393 394 395 396 397 398 387 case kGameTypeWoodruff: 388 _init = new Init_v3(this); 389 _video = new Video_v2(this); 390 _inter = new Inter_v4(this); 391 _parse = new Parse_v2(this); 392 _mult = new Mult_v2(this); 393 _draw = new Draw_v2(this); 394 _game = new Game_v2(this); 395 _map = new Map_v4(this); 396 _goblin = new Goblin_v4(this); 397 _scenery = new Scenery_v2(this); 398 _saveLoad = new SaveLoad_v4(this, _targetName.c_str()); 399 break; 399 400 400 case kGameTypeUrban:401 402 _video = new Video_v6(this);403 _inter = new Inter_v6(this);404 405 406 407 _game = new Game_v6(this);408 409 410 411 _saveLoad = new SaveLoad_v6(this, _targetName.c_str());412 401 case kGameTypeDynasty: 402 _init = new Init_v3(this); 403 _video = new Video_v2(this); 404 _inter = new Inter_v5(this); 405 _parse = new Parse_v2(this); 406 _mult = new Mult_v2(this); 407 _draw = new Draw_v2(this); 408 _game = new Game_v2(this); 409 _map = new Map_v4(this); 410 _goblin = new Goblin_v4(this); 411 _scenery = new Scenery_v2(this); 412 _saveLoad = new SaveLoad_v4(this, _targetName.c_str()); 413 break; 413 414 414 default: 415 deinitGameParts(); 416 return false; 417 break; 415 case kGameTypeArchibald: 416 case kGameTypeSpirou: 417 case kGameTypeAdibou4: 418 case kGameTypeUrban: 419 _init = new Init_v3(this); 420 _video = new Video_v6(this); 421 _inter = new Inter_v6(this); 422 _parse = new Parse_v2(this); 423 _mult = new Mult_v2(this); 424 _draw = new Draw_v2(this); 425 _game = new Game_v6(this); 426 _map = new Map_v4(this); 427 _goblin = new Goblin_v4(this); 428 _scenery = new Scenery_v2(this); 429 _saveLoad = new SaveLoad_v6(this, _targetName.c_str()); 430 break; 431 432 default: 433 deinitGameParts(); 434 return false; 435 break; 418 436 } 419 437 420 438 if (is640()) { -
engines/gob/gob.h
95 95 kGameTypeLostInTime, 96 96 kGameTypeInca2, 97 97 kGameTypeDynasty, 98 kGameTypeUrban 98 kGameTypeUrban, 99 kGameTypeArchibald, 100 kGameTypeSpirou, 101 kGameTypeFascination, 102 kGameTypeGeisha, 103 kGameTypeAdibou4 99 104 }; 100 105 101 106 enum Features { … … 208 213 uint16 _height; 209 214 uint8 _mode; 210 215 216 char *_startStk; 211 217 char *_startTot; 212 char *_startTot0;213 218 bool _copyProtection; 214 219 bool _noMusic; 215 220 -
engines/gob/init.cpp
55 55 _vm->_dataIO->closeDataFile(); 56 56 } 57 57 58 void Init::initGame( const char *totName) {58 void Init::initGame() { 59 59 int16 handle2; 60 60 int16 handle; 61 61 int16 imdHandle; … … 66 66 67 67 initVideo(); 68 68 69 // The Lost In Time demo uses different file prefix 70 if (_vm->getGameType() == kGameTypeLostInTime) { 71 handle2 = _vm->_dataIO->openData("demo.stk"); 72 if (handle2 >= 0) { 73 _vm->_dataIO->closeData(handle2); 74 _vm->_dataIO->openDataFile("demo.stk"); 75 } 76 } 77 78 handle2 = _vm->_dataIO->openData("intro.stk"); 69 handle2 = _vm->_dataIO->openData(_vm->_startStk); 79 70 if (handle2 >= 0) { 80 71 _vm->_dataIO->closeData(handle2); 81 _vm->_dataIO->openDataFile( "intro.stk");72 _vm->_dataIO->openDataFile(_vm->_startStk); 82 73 } 83 74 84 75 _vm->_util->initInput(); … … 142 133 delete[] infBuf; 143 134 } 144 135 145 if (totName) { 146 strncpy0(buffer, totName, 15); 147 strcat(buffer, ".tot"); 148 } else 149 strncpy0(buffer, _vm->_startTot, 19); 150 136 strcpy(buffer, _vm->_startTot); 151 137 handle = _vm->_dataIO->openData(buffer); 152 138 153 139 if (handle >= 0) { -
engines/gob/init.h
32 32 33 33 class Init { 34 34 public: 35 void initGame( const char *totFile);35 void initGame(); 36 36 37 37 virtual void initVideo() = 0; 38 38 -
engines/gob/init_v2.cpp
51 51 _vm->_global->_colorCount = 16; 52 52 if (!_vm->isEGA() && 53 53 ((_vm->getPlatform() == Common::kPlatformPC) || 54 (_vm->getPlatform() == Common::kPlatformMacintosh)) && 54 (_vm->getPlatform() == Common::kPlatformMacintosh) || 55 (_vm->getPlatform() == Common::kPlatformWindows)) && 55 56 ((_vm->_global->_videoMode == 0x13) || 56 57 (_vm->_global->_videoMode == 0x14))) 57 58 _vm->_global->_colorCount = 256; -
engines/gob/inter.cpp
231 231 break; 232 232 233 233 // WORKAROUND: 234 // The EGA and Mac versions of gob1 doesn't add a delay after showing235 // images between levels. We manually add it here.234 // The EGA, Mac and Windows versions of gob1 doesn't add a delay after 235 // showing images between levels. We manually add it here. 236 236 if ((_vm->getGameType() == kGameTypeGob1) && 237 (_vm->isEGA() || (_vm->getPlatform() == Common::kPlatformMacintosh))) { 237 ( _vm->isEGA() || 238 (_vm->getPlatform() == Common::kPlatformMacintosh) || 239 (_vm->getPlatform() == Common::kPlatformWindows))) { 238 240 239 241 int addr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData; 240 242 -
engines/gob/inter.h
451 451 void oBargon_intro9(OpGobParams ¶ms); 452 452 }; 453 453 454 class Inter_Fascination : public Inter_v2 { 455 public: 456 Inter_Fascination(GobEngine *vm); 457 virtual ~Inter_Fascination() {} 458 459 protected: 460 typedef void (Inter_Fascination::*OpcodeDrawProcFascination)(); 461 typedef bool (Inter_Fascination::*OpcodeFuncProcFascination)(OpFuncParams &); 462 typedef void (Inter_Fascination::*OpcodeGoblinProcFascination)(OpGobParams &); 463 struct OpcodeDrawEntryFascination { 464 OpcodeDrawProcFascination proc; 465 const char *desc; 466 }; 467 struct OpcodeFuncEntryFascination { 468 OpcodeFuncProcFascination proc; 469 const char *desc; 470 }; 471 struct OpcodeGoblinEntryFascination { 472 OpcodeGoblinProcFascination proc; 473 const char *desc; 474 }; 475 const OpcodeDrawEntryFascination *_opcodesDrawFascination; 476 const OpcodeFuncEntryFascination *_opcodesFuncFascination; 477 const OpcodeGoblinEntryFascination *_opcodesGoblinFascination; 478 static const int _goblinFuncLookUp[][2]; 479 480 virtual void setupOpcodes(); 481 virtual void executeDrawOpcode(byte i); 482 virtual bool executeFuncOpcode(byte i, byte j, OpFuncParams ¶ms); 483 virtual void executeGoblinOpcode(int i, OpGobParams ¶ms); 484 virtual const char *getOpcodeDrawDesc(byte i); 485 virtual const char *getOpcodeFuncDesc(byte i, byte j); 486 virtual const char *getOpcodeGoblinDesc(int i); 487 488 void o2_geUnknown2(OpGobParams ¶ms); 489 void o2_geUnknown3(OpGobParams ¶ms); 490 void o2_geUnknown4(OpGobParams ¶ms); 491 void o2_geUnknown10(OpGobParams ¶ms); 492 bool o2_feUnknown4(OpFuncParams ¶ms); 493 void o2_cdUnknown3(); 494 void o2_cdUnknown4(); 495 void o2_cdUnknown5(); 496 void o2_cdUnknown6(); 497 void o2_cdUnknown11(); 498 }; 499 454 500 class Inter_v3 : public Inter_v2 { 455 501 public: 456 502 Inter_v3(GobEngine *vm); -
engines/gob/inter_fascin.cpp
1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 * $URL$ 22 * $Id$ 23 * 24 */ 25 26 #include "common/endian.h" 27 28 #include "gob/gob.h" 29 #include "gob/inter.h" 30 #include "gob/global.h" 31 #include "gob/util.h" 32 #include "gob/dataio.h" 33 #include "gob/draw.h" 34 #include "gob/parse.h" 35 #include "gob/game.h" 36 #include "gob/palanim.h" 37 #include "gob/video.h" 38 #include "gob/videoplayer.h" 39 #include "gob/sound/sound.h" 40 41 namespace Gob { 42 43 #define OPCODE(x) _OPCODE(Inter_Fascination, x) 44 45 const int Inter_Fascination::_goblinFuncLookUp[][2] = { 46 {1, 0}, 47 {2, 1}, 48 {3, 2}, 49 {4, 3}, 50 {5, 4}, 51 {6, 5}, 52 {7, 6}, 53 {8, 7}, 54 {9, 8}, 55 {10, 9}, 56 {11, 10}, 57 {12, 11}, 58 {13, 12}, 59 {14, 13}, 60 {15, 14}, 61 {16, 15}, 62 {21, 16}, 63 {22, 17}, 64 {23, 18}, 65 {24, 19}, 66 {25, 20}, 67 {26, 21}, 68 {27, 22}, 69 {28, 23}, 70 {29, 24}, 71 {30, 25}, 72 {32, 26}, 73 {33, 27}, 74 {34, 28}, 75 {35, 29}, 76 {36, 30}, 77 {37, 31}, 78 {40, 32}, 79 {41, 33}, 80 {42, 34}, 81 {43, 35}, 82 {44, 36}, 83 {50, 37}, 84 {52, 38}, 85 {53, 39}, 86 {100, 40}, 87 {152, 41}, 88 {200, 42}, 89 {201, 43}, 90 {202, 44}, 91 {203, 45}, 92 {204, 46}, 93 {250, 47}, 94 {251, 48}, 95 {252, 49}, 96 {500, 50}, 97 {502, 51}, 98 {503, 52}, 99 {600, 53}, 100 {601, 54}, 101 {602, 55}, 102 {603, 56}, 103 {604, 57}, 104 {605, 58}, 105 {1000, 59}, 106 {1001, 60}, 107 {1002, 61}, 108 {1003, 62}, 109 {1004, 63}, 110 {1005, 64}, 111 {1006, 65}, 112 {1008, 66}, 113 {1009, 67}, 114 {1010, 68}, 115 {1011, 69}, 116 {1015, 70}, 117 {2005, 71} 118 }; 119 120 Inter_Fascination::Inter_Fascination(GobEngine *vm) : Inter_v2(vm) { 121 setupOpcodes(); 122 } 123 124 void Inter_Fascination::setupOpcodes() { 125 static const OpcodeDrawEntryFascination opcodesDraw[256] = { 126 /* 00 */ 127 OPCODE(o1_loadMult), 128 OPCODE(o2_playMult), 129 OPCODE(o1_freeMultKeys), 130 OPCODE(o2_cdUnknown3), 131 /* 04 */ 132 OPCODE(o2_cdUnknown4), 133 OPCODE(o2_cdUnknown5), 134 OPCODE(o2_cdUnknown6), 135 OPCODE(o1_initCursor), 136 /* 08 */ 137 OPCODE(o1_initCursorAnim), 138 OPCODE(o1_clearCursorAnim), 139 OPCODE(o2_setRenderFlags), 140 OPCODE(o2_cdUnknown11), 141 /* 0C */ 142 {NULL, ""}, 143 {NULL, ""}, 144 {NULL, ""}, 145 {NULL, ""}, 146 /* 10 */ 147 OPCODE(o1_loadAnim), 148 OPCODE(o1_freeAnim), 149 OPCODE(o1_updateAnim), 150 OPCODE(o2_multSub), 151 /* 14 */ 152 OPCODE(o2_initMult), 153 OPCODE(o1_freeMult), 154 OPCODE(o1_animate), 155 OPCODE(o2_loadMultObject), 156 /* 18 */ 157 OPCODE(o1_getAnimLayerInfo), 158 OPCODE(o1_getObjAnimSize), 159 OPCODE(o1_loadStatic), 160 OPCODE(o1_freeStatic), 161 /* 1C */ 162 OPCODE(o2_renderStatic), 163 OPCODE(o2_loadCurLayer), 164 {NULL, ""}, 165 {NULL, ""}, 166 /* 20 */ 167 OPCODE(o2_playCDTrack), 168 OPCODE(o2_waitCDTrackEnd), 169 OPCODE(o2_stopCD), 170 OPCODE(o2_readLIC), 171 /* 24 */ 172 OPCODE(o2_freeLIC), 173 OPCODE(o2_getCDTrackPos), 174 {NULL, ""}, 175 {NULL, ""}, 176 /* 28 */ 177 {NULL, ""}, 178 {NULL, ""}, 179 {NULL, ""}, 180 {NULL, ""}, 181 /* 2C */ 182 {NULL, ""}, 183 {NULL, ""}, 184 {NULL, ""}, 185 {NULL, ""}, 186 /* 30 */ 187 OPCODE(o2_loadFontToSprite), 188 OPCODE(o1_freeFontToSprite), 189 {NULL, ""}, 190 {NULL, ""}, 191 /* 34 */ 192 {NULL, ""}, 193 {NULL, ""}, 194 {NULL, ""}, 195 {NULL, ""}, 196 /* 38 */ 197 {NULL, ""}, 198 {NULL, ""}, 199 {NULL, ""}, 200 {NULL, ""}, 201 /* 3C */ 202 {NULL, ""}, 203 {NULL, ""}, 204 {NULL, ""}, 205 {NULL, ""}, 206 /* 40 */ 207 OPCODE(o2_totSub), 208 OPCODE(o2_switchTotSub), 209 OPCODE(o2_pushVars), 210 OPCODE(o2_popVars), 211 /* 44 */ 212 {NULL, ""}, 213 {NULL, ""}, 214 {NULL, ""}, 215 {NULL, ""}, 216 /* 48 */ 217 {NULL, ""}, 218 {NULL, ""}, 219 {NULL, ""}, 220 {NULL, ""}, 221 /* 4C */ 222 {NULL, ""}, 223 {NULL, ""}, 224 {NULL, ""}, 225 {NULL, ""}, 226 /* 50 */ 227 {NULL, ""},//OPCODE(o2_loadMapObjects), 228 {NULL, ""},//OPCODE(o2_freeGoblins), 229 {NULL, ""},//OPCODE(o2_moveGoblin), 230 {NULL, ""},//OPCODE(o2_writeGoblinPos), 231 /* 54 */ 232 {NULL, ""},//OPCODE(o2_stopGoblin), 233 {NULL, ""},//OPCODE(o2_setGoblinState), 234 {NULL, ""},//OPCODE(o2_placeGoblin), 235 {NULL, ""}, 236 /* 58 */ 237 {NULL, ""}, 238 {NULL, ""}, 239 {NULL, ""}, 240 {NULL, ""}, 241 /* 5C */ 242 {NULL, ""}, 243 {NULL, ""}, 244 {NULL, ""}, 245 {NULL, ""}, 246 /* 60 */ 247 {NULL, ""}, 248 {NULL, ""}, 249 {NULL, ""}, 250 {NULL, ""}, 251 /* 64 */ 252 {NULL, ""}, 253 {NULL, ""}, 254 {NULL, ""}, 255 {NULL, ""}, 256 /* 68 */ 257 {NULL, ""}, 258 {NULL, ""}, 259 {NULL, ""}, 260 {NULL, ""}, 261 /* 6C */ 262 {NULL, ""}, 263 {NULL, ""}, 264 {NULL, ""}, 265 {NULL, ""}, 266 /* 70 */ 267 {NULL, ""}, 268 {NULL, ""}, 269 {NULL, ""}, 270 {NULL, ""}, 271 /* 74 */ 272 {NULL, ""}, 273 {NULL, ""}, 274 {NULL, ""}, 275 {NULL, ""}, 276 /* 78 */ 277 {NULL, ""}, 278 {NULL, ""}, 279 {NULL, ""}, 280 {NULL, ""}, 281 /* 7C */ 282 {NULL, ""}, 283 {NULL, ""}, 284 {NULL, ""}, 285 {NULL, ""}, 286 /* 80 */ 287 {NULL, ""},//OPCODE(o2_initScreen), 288 {NULL, ""},//OPCODE(o2_scroll), 289 {NULL, ""},//OPCODE(o2_setScrollOffset), 290 {NULL, ""},//OPCODE(o2_playImd), 291 /* 84 */ 292 {NULL, ""},//OPCODE(o2_getImdInfo), 293 {NULL, ""},//OPCODE(o2_openItk), 294 {NULL, ""},//OPCODE(o2_closeItk), 295 {NULL, ""},//OPCODE(o2_setImdFrontSurf), 296 /* 88 */ 297 {NULL, ""},//OPCODE(o2_resetImdFrontSurf), 298 {NULL, ""}, 299 {NULL, ""}, 300 {NULL, ""}, 301 /* 8C */ 302 {NULL, ""}, 303 {NULL, ""}, 304 {NULL, ""}, 305 {NULL, ""}, 306 /* 90 */ 307 {NULL, ""}, 308 {NULL, ""}, 309 {NULL, ""}, 310 {NULL, ""}, 311 /* 94 */ 312 {NULL, ""}, 313 {NULL, ""}, 314 {NULL, ""}, 315 {NULL, ""}, 316 /* 98 */ 317 {NULL, ""}, 318 {NULL, ""}, 319 {NULL, ""}, 320 {NULL, ""}, 321 /* 9C */ 322 {NULL, ""}, 323 {NULL, ""}, 324 {NULL, ""}, 325 {NULL, ""}, 326 /* A0 */ 327 {NULL, ""}, 328 {NULL, ""}, 329 {NULL, ""}, 330 {NULL, ""}, 331 /* A4 */ 332 {NULL, ""}, 333 {NULL, ""}, 334 {NULL, ""}, 335 {NULL, ""}, 336 /* A8 */ 337 {NULL, ""}, 338 {NULL, ""}, 339 {NULL, ""}, 340 {NULL, ""}, 341 /* AC */ 342 {NULL, ""}, 343 {NULL, ""}, 344 {NULL, ""}, 345 {NULL, ""}, 346 /* B0 */ 347 {NULL, ""}, 348 {NULL, ""}, 349 {NULL, ""}, 350 {NULL, ""}, 351 /* B4 */ 352 {NULL, ""}, 353 {NULL, ""}, 354 {NULL, ""}, 355 {NULL, ""}, 356 /* B8 */ 357 {NULL, ""}, 358 {NULL, ""}, 359 {NULL, ""}, 360 {NULL, ""}, 361 /* BC */ 362 {NULL, ""}, 363 {NULL, ""}, 364 {NULL, ""}, 365 {NULL, ""}, 366 /* C0 */ 367 {NULL, ""}, 368 {NULL, ""}, 369 {NULL, ""}, 370 {NULL, ""}, 371 /* C4 */ 372 {NULL, ""}, 373 {NULL, ""}, 374 {NULL, ""}, 375 {NULL, ""}, 376 /* C8 */ 377 {NULL, ""}, 378 {NULL, ""}, 379 {NULL, ""}, 380 {NULL, ""}, 381 /* CC */ 382 {NULL, ""}, 383 {NULL, ""}, 384 {NULL, ""}, 385 {NULL, ""}, 386 /* D0 */ 387 {NULL, ""}, 388 {NULL, ""}, 389 {NULL, ""}, 390 {NULL, ""}, 391 /* D4 */ 392 {NULL, ""}, 393 {NULL, ""}, 394 {NULL, ""}, 395 {NULL, ""}, 396 /* D8 */ 397 {NULL, ""}, 398 {NULL, ""}, 399 {NULL, ""}, 400 {NULL, ""}, 401 /* DC */ 402 {NULL, ""}, 403 {NULL, ""}, 404 {NULL, ""}, 405 {NULL, ""}, 406 /* E0 */ 407 {NULL, ""}, 408 {NULL, ""}, 409 {NULL, ""}, 410 {NULL, ""}, 411 /* E4 */ 412 {NULL, ""}, 413 {NULL, ""}, 414 {NULL, ""}, 415 {NULL, ""}, 416 /* E8 */ 417 {NULL, ""}, 418 {NULL, ""}, 419 {NULL, ""}, 420 {NULL, ""}, 421 /* EC */ 422 {NULL, ""}, 423 {NULL, ""}, 424 {NULL, ""}, 425 {NULL, ""}, 426 /* F0 */ 427 {NULL, ""}, 428 {NULL, ""}, 429 {NULL, ""}, 430 {NULL, ""}, 431 /* F4 */ 432 {NULL, ""}, 433 {NULL, ""}, 434 {NULL, ""}, 435 {NULL, ""}, 436 /* F8 */ 437 {NULL, ""}, 438 {NULL, ""}, 439 {NULL, ""}, 440 {NULL, ""}, 441 /* FC */ 442 {NULL, ""}, 443 {NULL, ""}, 444 {NULL, ""}, 445 {NULL, ""} 446 }; 447 448 static const OpcodeFuncEntryFascination opcodesFunc[80] = { 449 /* 00 */ 450 OPCODE(o1_callSub), 451 OPCODE(o1_callSub), 452 OPCODE(o1_printTotText), 453 OPCODE(o1_loadCursor), 454 /* 04 */ 455 {NULL, ""}, 456 OPCODE(o1_switch), 457 OPCODE(o1_repeatUntil), 458 OPCODE(o1_whileDo), 459 /* 08 */ 460 OPCODE(o1_if), 461 OPCODE(o2_evaluateStore), 462 OPCODE(o1_loadSpriteToPos), 463 {NULL, ""}, 464 /* 0C */ 465 {NULL, ""}, 466 {NULL, ""}, 467 {NULL, ""}, 468 {NULL, ""}, 469 /* 10 */ 470 {NULL, ""}, 471 OPCODE(o2_printText), 472 OPCODE(o1_loadTot), 473 OPCODE(o1_palLoad), 474 /* 14 */ 475 OPCODE(o1_keyFunc), 476 OPCODE(o1_capturePush), 477 OPCODE(o1_capturePop), 478 OPCODE(o2_animPalInit), 479 /* 18 */ 480 OPCODE(o2_addCollision), 481 OPCODE(o2_freeCollision), 482 {NULL, ""}, 483 {NULL, ""}, 484 /* 1C */ 485 {NULL, ""}, 486 {NULL, ""}, 487 OPCODE(o1_drawOperations), 488 OPCODE(o1_setcmdCount), 489 /* 20 */ 490 OPCODE(o1_return), 491 OPCODE(o1_renewTimeInVars), 492 OPCODE(o1_speakerOn), 493 OPCODE(o1_speakerOff), 494 /* 24 */ 495 OPCODE(o1_putPixel), 496 OPCODE(o2_goblinFunc), 497 OPCODE(o1_createSprite), 498 OPCODE(o1_freeSprite), 499 /* 28 */ 500 {NULL, ""}, 501 {NULL, ""}, 502 {NULL, ""}, 503 {NULL, ""}, 504 /* 2C */ 505 {NULL, ""}, 506 {NULL, ""}, 507 {NULL, ""}, 508 {NULL, ""}, 509 /* 30 */ 510 OPCODE(o1_returnTo), 511 OPCODE(o1_loadSpriteContent), 512 OPCODE(o1_copySprite), 513 OPCODE(o1_fillRect), 514 /* 34 */ 515 OPCODE(o1_drawLine), 516 OPCODE(o1_strToLong), 517 OPCODE(o1_invalidate), 518 OPCODE(o1_setBackDelta), 519 /* 38 */ 520 OPCODE(o1_playSound), 521 OPCODE(o2_stopSound), 522 OPCODE(o2_loadSound), 523 OPCODE(o1_freeSoundSlot), 524 /* 3C */ 525 OPCODE(o1_waitEndPlay), 526 OPCODE(o1_playComposition), 527 OPCODE(o2_getFreeMem), 528 OPCODE(o2_checkData), 529 /* 40 */ 530 {NULL, ""}, 531 OPCODE(o1_prepareStr), 532 OPCODE(o1_insertStr), 533 OPCODE(o1_cutStr), 534 /* 44 */ 535 OPCODE(o1_strstr), 536 OPCODE(o1_istrlen), 537 OPCODE(o1_setMousePos), 538 OPCODE(o1_setFrameRate), 539 /* 48 */ 540 OPCODE(o1_animatePalette), 541 OPCODE(o1_animateCursor), 542 OPCODE(o1_blitCursor), 543 OPCODE(o1_loadFont), 544 /* 4C */ 545 OPCODE(o1_freeFont), 546 OPCODE(o2_readData), 547 OPCODE(o2_writeData), 548 OPCODE(o1_manageDataFile), 549 }; 550 551 static const OpcodeGoblinEntryFascination opcodesGoblin[71] = { 552 /* 00 */ 553 {NULL, ""},//OPCODE(o2_loadInfogramesIns), 554 {NULL, ""},//OPCODE(o2_startInfogrames), 555 OPCODE(o2_geUnknown2),//OPCODE(o2_stopInfogrames), 556 OPCODE(o2_geUnknown3), // OPCODE(o2_startInfogrames), 557 /* 04 */ 558 OPCODE(o2_geUnknown4), 559 OPCODE(o2_playProtracker), //OPCODE(o2_geUnknown5), 560 OPCODE(o2_stopProtracker), //OPCODE(o2_geUnknown6), 561 {NULL, ""}, 562 /* 08 */ 563 {NULL, ""}, 564 OPCODE(o2_geUnknown10), // OPCODE(o2_playInfogrames), 565 {NULL, ""}, 566 {NULL, ""}, 567 /* 0C */ 568 {NULL, ""}, 569 {NULL, ""}, 570 {NULL, ""}, 571 {NULL, ""}, 572 /* 10 */ 573 {NULL, ""}, 574 {NULL, ""}, 575 {NULL, ""}, 576 {NULL, ""}, 577 /* 14 */ 578 {NULL, ""}, 579 {NULL, ""}, 580 {NULL, ""}, 581 {NULL, ""}, 582 /* 18 */ 583 {NULL, ""}, 584 {NULL, ""}, 585 {NULL, ""}, 586 {NULL, ""}, 587 /* 1C */ 588 {NULL, ""}, 589 {NULL, ""}, 590 {NULL, ""}, 591 {NULL, ""}, 592 /* 20 */ 593 {NULL, ""}, 594 {NULL, ""}, 595 {NULL, ""}, 596 {NULL, ""}, 597 /* 24 */ 598 {NULL, ""}, 599 {NULL, ""}, 600 {NULL, ""}, 601 {NULL, ""}, //OPCODE(o2_handleGoblins), 602 /* 28 */ 603 {NULL, ""}, //OPCODE(o2_playProtracker), 604 {NULL, ""}, //OPCODE(o2_stopProtracker), 605 {NULL, ""}, 606 {NULL, ""}, 607 /* 2C */ 608 {NULL, ""}, 609 {NULL, ""}, 610 {NULL, ""}, 611 {NULL, ""}, 612 /* 30 */ 613 {NULL, ""}, 614 {NULL, ""}, 615 {NULL, ""}, 616 {NULL, ""}, 617 /* 34 */ 618 {NULL, ""}, 619 {NULL, ""}, 620 {NULL, ""}, 621 {NULL, ""}, 622 /* 38 */ 623 {NULL, ""}, 624 {NULL, ""}, 625 {NULL, ""}, 626 {NULL, ""}, 627 /* 3C */ 628 {NULL, ""}, 629 {NULL, ""}, 630 {NULL, ""}, 631 {NULL, ""}, 632 /* 40 */ 633 {NULL, ""}, 634 {NULL, ""}, 635 {NULL, ""}, 636 {NULL, ""}, 637 /* 44 */ 638 {NULL, ""}, 639 {NULL, ""}, 640 {NULL, ""}, 641 }; 642 643 _opcodesDrawFascination = opcodesDraw; 644 _opcodesFuncFascination = opcodesFunc; 645 _opcodesGoblinFascination = opcodesGoblin; 646 } 647 648 void Inter_Fascination::executeDrawOpcode(byte i) { 649 debugC(1, kDebugDrawOp, "opcodeDraw %d [0x%X] (%s)", 650 i, i, getOpcodeDrawDesc(i)); 651 652 OpcodeDrawProcFascination op = _opcodesDrawFascination[i].proc; 653 654 if (op == NULL) 655 warning("Not yet implemented Fascination opcodeDraw: %d", i); 656 else 657 (this->*op) (); 658 } 659 660 void Inter_Fascination::o2_geUnknown2(OpGobParams ¶ms) { 661 warning("Fascination Unknown GE Function 2\n"); 662 } 663 664 void Inter_Fascination::o2_geUnknown3(OpGobParams ¶ms) { 665 warning("Fascination Unknown GE Function 3\n"); 666 } 667 668 void Inter_Fascination::o2_geUnknown4(OpGobParams ¶ms) { 669 warning("Fascination Unknown GE Function 4\n"); 670 } 671 672 void Inter_Fascination::o2_geUnknown10(OpGobParams ¶ms) { 673 warning("Fascination Unknown GE Function 10\n"); 674 } 675 676 bool Inter_Fascination::o2_feUnknown4(OpFuncParams ¶ms) { 677 warning("Fascination Unknown FE Function 4\n"); 678 return true; 679 } 680 681 void Inter_Fascination::o2_cdUnknown3() { 682 uint16 resVar, resVar2; 683 int16 retVal1, retVal2, retVal3, retVal4, retVal5, retVal6, retVal7; 684 685 warning("Fascination Unknown CD Function 3 (sub_EDBB)\n"); 686 687 resVar = (uint16) load16(); 688 resVar2 = (uint16) load16(); 689 retVal1 = _vm->_parse->parseVarIndex(); 690 retVal2 = _vm->_parse->parseVarIndex(); 691 retVal3 = _vm->_parse->parseVarIndex(); 692 retVal4 = _vm->_parse->parseVarIndex(); 693 retVal5 = _vm->_parse->parseVarIndex(); 694 retVal6 = _vm->_parse->parseVarIndex(); 695 retVal7 = _vm->_parse->parseVarIndex(); 696 warning ("Input %d %d\n",resVar, resVar2); 697 warning ("Fetched variables %d %d %d %d %d %d %d\n", retVal1, retVal2, retVal3, retVal4, retVal5, retVal6, retVal7); 698 } 699 700 void Inter_Fascination::o2_cdUnknown4() { 701 warning("Fascination Unknown CD Function 4 (sub_EE04)\n"); 702 } 703 704 void Inter_Fascination::o2_cdUnknown5() { 705 warning("Fascination Unknown CD Function 5 (sub_EE29)\n"); 706 } 707 708 void Inter_Fascination::o2_cdUnknown6() { 709 bool resFlag; 710 int16 retVal1; 711 warning("Fascination Unknown CD Function 6 (sub_EE46)\n"); 712 resFlag = evalBoolResult(); 713 retVal1 = _vm->_parse->parseVarIndex(); 714 warning ("Fetched variable %d\n",retVal1); 715 } 716 717 void Inter_Fascination::o2_cdUnknown11() { 718 bool resFlag; 719 warning("Fascination Unknown CD Function 11 (loc_66E6) - AX=0E6h\n"); 720 721 resFlag = evalBoolResult(); 722 } 723 724 bool Inter_Fascination::executeFuncOpcode(byte i, byte j, OpFuncParams ¶ms) { 725 debugC(1, kDebugFuncOp, "opcodeFunc %d.%d [0x%X.0x%X] (%s)", 726 i, j, i, j, getOpcodeFuncDesc(i, j)); 727 728 if ((i > 4) || (j > 16)) { 729 warning("Invalid opcodeFunc: %d.%d", i, j); 730 return false; 731 } 732 733 OpcodeFuncProcFascination op = _opcodesFuncFascination[i*16 + j].proc; 734 735 if (op == NULL) 736 warning("unimplemented opcodeFunc: %d.%d", i, j); 737 else 738 return (this->*op) (params); 739 740 return false; 741 } 742 743 void Inter_Fascination::executeGoblinOpcode(int i, OpGobParams ¶ms) { 744 debugC(1, kDebugGobOp, "opcodeGoblin %d [0x%X] (%s)", 745 i, i, getOpcodeGoblinDesc(i)); 746 747 OpcodeGoblinProcFascination op = NULL; 748 749 for (int j = 0; j < ARRAYSIZE(_goblinFuncLookUp); j++) 750 if (_goblinFuncLookUp[j][0] == i) { 751 op = _opcodesGoblinFascination[_goblinFuncLookUp[j][1]].proc; 752 break; 753 } 754 755 if (op == NULL) { 756 int16 val; 757 758 _vm->_global->_inter_execPtr -= 2; 759 val = load16(); 760 _vm->_global->_inter_execPtr += val << 1; 761 warning("unimplemented opcodeGob: %d", i); 762 } else 763 (this->*op) (params); 764 } 765 766 const char *Inter_Fascination::getOpcodeDrawDesc(byte i) { 767 return _opcodesDrawFascination[i].desc; 768 } 769 770 const char *Inter_Fascination::getOpcodeFuncDesc(byte i, byte j) { 771 if ((i > 4) || (j > 15)) 772 return ""; 773 774 return _opcodesFuncFascination[i*16 + j].desc; 775 } 776 777 const char *Inter_Fascination::getOpcodeGoblinDesc(int i) { 778 for (int j = 0; j < ARRAYSIZE(_goblinFuncLookUp); j++) 779 if (_goblinFuncLookUp[j][0] == i) 780 return _opcodesGoblinFascination[_goblinFuncLookUp[j][1]].desc; 781 warning("Error in getOpcodeGoblinDesc %d\n",i); 782 return ""; 783 } 784 785 } // End of namespace Gob -
engines/gob/inter_v1.cpp
Property changes on: engines\gob\inter_fascin.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Date Rev Author URL Id Added: svn:eol-style + native
1142 1142 } 1143 1143 // Skipping the copy protection screen in Gobliins 2 1144 1144 if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob2) && (offset == 1746) 1145 && !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot0)) {1145 && !scumm_stricmp(_vm->_game->_curTotFile, "intro0.tot")) { 1146 1146 debugC(2, kDebugGameFlow, "Skipping copy protection screen"); 1147 1147 return false; 1148 1148 } … … 1436 1436 buf[size] = 0; 1437 1437 } 1438 1438 1439 strcat(buf, ".tot"); 1439 if (_vm->getGameType() == kGameTypeGeisha) 1440 strcat(buf, ".0ot"); 1441 else 1442 strcat(buf, ".tot"); 1440 1443 if (_terminate != 2) 1441 1444 _terminate = 1; 1442 1445 strcpy(_vm->_game->_totToLoad, buf); -
engines/gob/module.mk
7 7 draw_v1.o \ 8 8 draw_v2.o \ 9 9 draw_bargon.o \ 10 draw_fascin.o \ 10 11 driver_vga.o \ 11 12 game.o \ 12 13 game_v1.o \ … … 30 31 inter_v1.o \ 31 32 inter_v2.o \ 32 33 inter_bargon.o \ 34 inter_fascin.o \ 33 35 inter_v3.o \ 34 36 inter_v4.o \ 35 37 inter_v5.o \