Ticket #8991: Gob_Strangerke_090407_v3.patch

File Gob_Strangerke_090407_v3.patch, 60.6 KB (added by Strangerke, 11 years ago)

Gob - Fix detection of Playtoon games. Add missing spaces in AD_ENTRY1s calls. Split check of baseTot and baseStk.

  • dists/msvc9/gob.vcproj

     
    284284                        >
    285285                </File>
    286286                <File
     287                        RelativePath="..\..\engines\gob\draw_fascin.cpp"
     288                        >
     289                </File>
     290                <File
    287291                        RelativePath="..\..\engines\gob\draw_v1.cpp"
    288292                        >
    289293                </File>
     
    404408                        >
    405409                </File>
    406410                <File
     411                        RelativePath="..\..\engines\gob\inter_fascin.cpp"
     412                        >
     413                </File>
     414                <File
    407415                        RelativePath="..\..\engines\gob\inter_v1.cpp"
    408416                        >
    409417                </File>
  • engines/gob/detection.cpp

     
    3535
    3636        GameType gameType;
    3737        int32 features;
     38        const char *startStkBase;
    3839        const char *startTotBase;
    3940};
    4041
     
    5960        {"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"},
    6061        {"dynasty", "The Last Dynasty"},
    6162        {"urban", "Urban Runner"},
     63        {"archibald", "Playtoon 1 - Uncle Archibald"},
     64        {"spirou", "Playtoon 2 - Spirou"},
     65        {"fascination", "Fascination"},
     66        {"geisha", "Geisha"},
     67        {"adibou4", "Adibou v4"},
    6268        {0, 0}
    6369};
    6470
     
    8288                },
    8389                kGameTypeGob1,
    8490                kFeaturesEGA,
    85                 "intro"
     91                0,
     92                0
    8693        },
    8794        {
    8895                {
     
    95102                },
    96103                kGameTypeGob1,
    97104                kFeaturesEGA,
    98                 "intro"
     105                0,
     106                0
    99107        },
    100108        { // Supplied by Theruler76 in bug report #1201233
    101109                {
     
    108116                },
    109117                kGameTypeGob1,
    110118                kFeaturesNone,
    111                 "intro"
     119                0,
     120                0
    112121        },
    113122        { // Supplied by raziel_ in bug report #1891864
    114123                {
     
    121130                },
    122131                kGameTypeGob1,
    123132                kFeaturesAdlib,
    124                 "intro"
     133                0,
     134                0
    125135        },
    126136        { // CD 1.000 version.
    127137                {
     
    134144                },
    135145                kGameTypeGob1,
    136146                kFeaturesCD,
    137                 "intro"
     147                0,
     148                0
    138149        },
    139150        { // CD 1.000 version.
    140151                {
     
    147158                },
    148159                kGameTypeGob1,
    149160                kFeaturesCD,
    150                 "intro"
     161                0,
     162                0
    151163        },
    152164        { // CD 1.000 version.
    153165                {
     
    160172                },
    161173                kGameTypeGob1,
    162174                kFeaturesCD,
    163                 "intro"
     175                0,
     176                0
    164177        },
    165178        { // CD 1.000 version.
    166179                {
     
    173186                },
    174187                kGameTypeGob1,
    175188                kFeaturesCD,
    176                 "intro"
     189                0,
     190                0
    177191        },
    178192        { // CD 1.000 version.
    179193                {
     
    186200                },
    187201                kGameTypeGob1,
    188202                kFeaturesCD,
    189                 "intro"
     203                0,
     204                0
    190205        },
    191206        { // CD 1.02 version. Multilingual
    192207                {
     
    199214                },
    200215                kGameTypeGob1,
    201216                kFeaturesCD,
    202                 "intro"
     217                0,
     218                0
    203219        },
    204220        { // CD 1.02 version. Multilingual
    205221                {
     
    212228                },
    213229                kGameTypeGob1,
    214230                kFeaturesCD,
    215                 "intro"
     231                0,
     232                0
    216233        },
    217234        { // CD 1.02 version. Multilingual
    218235                {
     
    225242                },
    226243                kGameTypeGob1,
    227244                kFeaturesCD,
    228                 "intro"
     245                0,
     246                0
    229247        },
    230248        { // CD 1.02 version. Multilingual
    231249                {
     
    238256                },
    239257                kGameTypeGob1,
    240258                kFeaturesCD,
    241                 "intro"
     259                0,
     260                0
    242261        },
    243262        { // CD 1.02 version. Multilingual
    244263                {
     
    251270                },
    252271                kGameTypeGob1,
    253272                kFeaturesCD,
    254                 "intro"
     273                0,
     274                0
    255275        },
    256276        {
    257277                {
     
    264284                },
    265285                kGameTypeGob1,
    266286                kFeaturesNone,
    267                 "intro"
     287                0,
     288                0
    268289        },
    269290        {
    270291                {
     
    277298                },
    278299                kGameTypeGob1,
    279300                kFeaturesNone,
    280                 "intro"
     301                0,
     302                0
    281303        },
    282304        {
    283305                {
     
    290312                },
    291313                kGameTypeGob1,
    292314                kFeaturesNone,
    293                 "intro"
     315                0,
     316                0
    294317        },
    295318        { // Supplied by raina in the forums
    296319                {
     
    303326                },
    304327                kGameTypeGob1,
    305328                kFeaturesNone,
    306                 "intro"
     329                0,
     330                0
    307331        },
    308332        { // Supplied by paul66 in bug report #1652352
    309333                {
     
    316340                },
    317341                kGameTypeGob1,
    318342                kFeaturesAdlib,
    319                 "intro"
     343                0,
     344                0
    320345        },
    321346        { // Supplied by paul66 in bug report #1652352
    322347                {
     
    329354                },
    330355                kGameTypeGob1,
    331356                kFeaturesAdlib,
    332                 "intro"
     357                0,
     358                0
    333359        },
    334360        { // Supplied by paul66 in bug report #1652352
    335361                {
     
    342368                },
    343369                kGameTypeGob1,
    344370                kFeaturesAdlib,
    345                 "intro"
     371                0,
     372                0
    346373        },
    347374        { // Supplied by paul66 in bug report #1652352
    348375                {
     
    355382                },
    356383                kGameTypeGob1,
    357384                kFeaturesAdlib,
    358                 "intro"
     385                0,
     386                0
    359387        },
    360388        { // Supplied by paul66 in bug report #1652352
    361389                {
     
    368396                },
    369397                kGameTypeGob1,
    370398                kFeaturesAdlib,
    371                 "intro"
     399                0,
     400                0
    372401        },
     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        },
    373420        { // Supplied by fac76 in bug report #1883808
    374421                {
    375422                        "gob2",
     
    381428                },
    382429                kGameTypeGob2,
    383430                kFeaturesNone,
    384                 "intro"
     431                0,
     432                0
    385433        },
    386434        {
    387435                {
     
    394442                },
    395443                kGameTypeGob2,
    396444                kFeaturesNone,
    397                 "intro"
     445                0,
     446                0
    398447        },
    399448        { // Supplied by goodoldgeorg in bug report #2602057
    400449                {
     
    407456                },
    408457                kGameTypeGob2,
    409458                kFeaturesNone,
    410                 "intro"
     459                0,
     460                0
    411461        },
    412462        { // Supplied by bgk in bug report #1706861
    413463                {
     
    420470                },
    421471                kGameTypeGob2,
    422472                kFeaturesNone,
    423                 "intro"
     473                0,
     474                0
    424475        },
    425476        { // Supplied by fac76 in bug report #1673397
    426477                {
     
    437488                },
    438489                kGameTypeGob2,
    439490                kFeaturesAdlib,
    440                 "intro"
     491                0,
     492                0
    441493        },
    442494        { // Supplied by koalet in bug report #2478585
    443495                {
     
    454506                },
    455507                kGameTypeGob2,
    456508                kFeaturesAdlib,
    457                 "intro"
     509                0,
     510                0
    458511        },
    459512        {
    460513                {
     
    467520                },
    468521                kGameTypeGob2,
    469522                kFeaturesAdlib,
    470                 "intro"
     523                0,
     524                0
    471525        },
    472526        {
    473527                {
     
    480534                },
    481535                kGameTypeGob2,
    482536                kFeaturesAdlib,
    483                 "intro"
     537                0,
     538                0
    484539        },
    485540        { // Supplied by raziel_ in bug report #1891867
    486541                {
     
    493548                },
    494549                kGameTypeGob2,
    495550                kFeaturesAdlib,
    496                 "intro"
     551                0,
     552                0
    497553        },
    498554        {
    499555                {
     
    506562                },
    507563                kGameTypeGob2,
    508564                kFeaturesAdlib,
    509                 "intro"
     565                0,
     566                0
    510567        },
    511568        { // Supplied by blackwhiteeagle in bug report #1605235
    512569                {
     
    519576                },
    520577                kGameTypeGob2,
    521578                kFeaturesAdlib,
    522                 "intro"
     579                0,
     580                0
    523581        },
    524582        {
    525583                {
     
    532590                },
    533591                kGameTypeGob2,
    534592                kFeaturesAdlib,
    535                 "intro"
     593                0,
     594                0
    536595        },
    537596        { // Supplied by goodoldgeorg in bug report #2602017
    538597                {
     
    545604                },
    546605                kGameTypeGob2,
    547606                kFeaturesAdlib,
    548                 "intro"
     607                0,
     608                0
    549609        },
    550610        {
    551611                {
     
    558618                },
    559619                kGameTypeGob2,
    560620                kFeaturesAdlib,
    561                 "intro"
     621                0,
     622                0
    562623        },
    563624        { // Supplied by arcepi in bug report #1659884
    564625                {
     
    571632                },
    572633                kGameTypeGob2,
    573634                kFeaturesAdlib,
    574                 "intro"
     635                0,
     636                0
    575637        },
    576638        {
    577639                {
     
    584646                },
    585647                kGameTypeGob2,
    586648                kFeaturesCD,
    587                 "intro"
     649                0,
     650                0
    588651        },
    589652        {
    590653                {
     
    597660                },
    598661                kGameTypeGob2,
    599662                kFeaturesCD,
    600                 "intro"
     663                0,
     664                0
    601665        },
    602666        {
    603667                {
     
    610674                },
    611675                kGameTypeGob2,
    612676                kFeaturesCD,
    613                 "intro"
     677                0,
     678                0
    614679        },
    615680        {
    616681                {
     
    623688                },
    624689                kGameTypeGob2,
    625690                kFeaturesCD,
    626                 "intro"
     691                0,
     692                0
    627693        },
    628694        {
    629695                {
     
    636702                },
    637703                kGameTypeGob2,
    638704                kFeaturesCD,
    639                 "intro"
     705                0,
     706                0
    640707        },
    641708        {
    642709                {
     
    649716                },
    650717                kGameTypeGob2,
    651718                kFeaturesCD,
    652                 "intro"
     719                0,
     720                0
    653721        },
    654722        {
    655723                {
     
    662730                },
    663731                kGameTypeGob2,
    664732                kFeaturesAdlib,
    665                 "usa"
     733                0,
     734                "usa.tot"
    666735        },
    667736        {
    668737                {
     
    675744                },
    676745                kGameTypeGob2,
    677746                kFeaturesAdlib,
    678                 "intro"
     747                0,
     748                0
    679749        },
    680750        {
    681751                {
     
    688758                },
    689759                kGameTypeGob2,
    690760                kFeaturesNone,
    691                 "intro"
     761                0,
     762                0
    692763        },
    693764        { // Supplied by polluks in bug report #1895126
    694765                {
     
    701772                },
    702773                kGameTypeGob2,
    703774                kFeaturesNone,
    704                 "intro"
     775                0,
     776                0
    705777        },
     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        },
    706796        { // Supplied by vampir_raziel in bug report #1658373
    707797                {
    708798                        "ween",
     
    718808                },
    719809                kGameTypeWeen,
    720810                kFeaturesNone,
    721                 "intro"
     811                0,
     812                0
    722813        },
    723814        { // Supplied by vampir_raziel in bug report #1658373
    724815                {
     
    731822                },
    732823                kGameTypeWeen,
    733824                kFeaturesNone,
    734                 "intro"
     825                0,
     826                0
    735827        },
    736828        { // Supplied by vampir_raziel in bug report #1658373
    737829                {
     
    744836                },
    745837                kGameTypeWeen,
    746838                kFeaturesNone,
    747                 "intro"
     839                0,
     840                0
    748841        },
    749842        { // Supplied by vampir_raziel in bug report #1658373
    750843                {
     
    757850                },
    758851                kGameTypeWeen,
    759852                kFeaturesNone,
    760                 "intro"
     853                0,
     854                0
    761855        },
    762856        { // Supplied by goodoldgeorg in bug report #2563539
    763857                {
     
    774868                },
    775869                kGameTypeWeen,
    776870                kFeaturesNone,
    777                 "intro"
     871                0,
     872                0
    778873        },
    779874        { // Supplied by pwigren in bug report #1764174
    780875                {
     
    791886                },
    792887                kGameTypeWeen,
    793888                kFeaturesNone,
    794                 "intro"
     889                0,
     890                0
    795891        },
    796892        {
    797893                {
     
    804900                },
    805901                kGameTypeWeen,
    806902                kFeaturesNone,
    807                 "intro"
     903                0,
     904                0
    808905        },
    809906        {
    810907                {
     
    817914                },
    818915                kGameTypeWeen,
    819916                kFeaturesAdlib,
    820                 "intro"
     917                0,
     918                0
    821919        },
    822920        {
    823921                {
     
    830928                },
    831929                kGameTypeWeen,
    832930                kFeaturesAdlib,
    833                 "intro"
     931                0,
     932                0
    834933        },
    835934        { // Supplied by cybot_tmin in bug report #1667743
    836935                {
     
    843942                },
    844943                kGameTypeWeen,
    845944                kFeaturesAdlib,
    846                 "intro"
     945                0,
     946                0
    847947        },
    848948        {
    849949                {
     
    856956                },
    857957                kGameTypeWeen,
    858958                kFeaturesAdlib,
    859                 "intro"
     959                0,
     960                0
    860961        },
    861962        { // Supplied by cartman_ on #scummvm
    862963                {
     
    869970                },
    870971                kGameTypeWeen,
    871972                kFeaturesAdlib,
    872                 "intro"
     973                0,
     974                0
    873975        },
    874976        { // Supplied by glorfindel in bugreport #1722142
    875977                {
     
    882984                },
    883985                kGameTypeWeen,
    884986                kFeaturesAdlib,
    885                 "intro"
     987                0,
     988                0
    886989        },
    887990        {
    888991                {
     
    895998                },
    896999                kGameTypeWeen,
    8971000                kFeaturesAdlib,
    898                 "show"
     1001                0,
     1002                "show.tot"
    8991003        },
    9001004        {
    9011005                {
     
    9081012                },
    9091013                kGameTypeWeen,
    9101014                kFeaturesAdlib,
    911                 "show"
     1015                0,
     1016                "show.tot"
    9121017        },
    9131018        {
    9141019                {
     
    9211026                },
    9221027                kGameTypeBargon,
    9231028                kFeaturesNone,
    924                 "intro"
     1029                0,
     1030                0
    9251031        },
    9261032        { // Supplied by Trekky in the forums
    9271033                {
     
    9341040                },
    9351041                kGameTypeBargon,
    9361042                kFeaturesNone,
    937                 "intro"
     1043                0,
     1044                0
    9381045        },
    9391046        { // Supplied by cesardark in bug #1681649
    9401047                {
     
    9471054                },
    9481055                kGameTypeBargon,
    9491056                kFeaturesNone,
    950                 "intro"
     1057                0,
     1058                0
    9511059        },
    9521060        { // Supplied by paul66 in bug #1692667
    9531061                {
     
    9601068                },
    9611069                kGameTypeBargon,
    9621070                kFeaturesNone,
    963                 "intro"
     1071                0,
     1072                0
    9641073        },
    9651074        { // Supplied by pwigren in bugreport #1764174
    9661075                {
     
    9731082                },
    9741083                kGameTypeBargon,
    9751084                kFeaturesNone,
    976                 "intro"
     1085                0,
     1086                0
    9771087        },
    9781088        { // Supplied by kizkoool in bugreport #2089734
    9791089                {
     
    9861096                },
    9871097                kGameTypeBargon,
    9881098                kFeaturesNone,
    989                 "intro"
     1099                0,
     1100                0
    9901101        },
    9911102        { // Supplied by glorfindel in bugreport #1722142
    9921103                {
     
    9991110                },
    10001111                kGameTypeBargon,
    10011112                kFeaturesNone,
    1002                 "intro"
     1113                0,
     1114                0
    10031115        },
    10041116        {
    10051117                {
     
    10121124                },
    10131125                kGameTypeGob2,
    10141126                kFeaturesAdlib | kFeaturesEGA,
    1015                 "intro"
     1127                0,
     1128                0
    10161129        },
    10171130        {
    10181131                {
     
    10291142                },
    10301143                kGameTypeGob2,
    10311144                kFeaturesNone,
    1032                 "intro"
     1145                0,
     1146                0
    10331147        },
    10341148        {
    10351149                {
     
    10421156                },
    10431157                kGameTypeGob2,
    10441158                kFeaturesAdlib,
    1045                 "intro"
     1159                0,
     1160                0
    10461161        },
    10471162        {
    10481163                {
     
    10551170                },
    10561171                kGameTypeLostInTime,
    10571172                kFeaturesAdlib,
    1058                 "intro"
     1173                0,
     1174                0
    10591175        },
    10601176        { // Supplied by Arshlan in the forums
    10611177                {
     
    10681184                },
    10691185                kGameTypeLostInTime,
    10701186                kFeaturesAdlib,
    1071                 "intro"
     1187                0,
     1188                0
    10721189        },
    10731190        { // Supplied by cartman_ on #scummvm
    10741191                {
     
    10811198                },
    10821199                kGameTypeLostInTime,
    10831200                kFeaturesAdlib,
    1084                 "intro"
     1201                0,
     1202                0
    10851203        },
    10861204        { // Supplied by goodoldgeorg in bug report #2105220
    10871205                {
     
    10941212                },
    10951213                kGameTypeLostInTime,
    10961214                kFeaturesAdlib,
    1097                 "intro"
     1215                0,
     1216                0
    10981217        },
    10991218        { // Supplied by koalet in bug report #2479034
    11001219                {
     
    11111230                },
    11121231                kGameTypeLostInTime,
    11131232                kFeaturesAdlib,
    1114                 "intro"
     1233                0,
     1234                0
    11151235        },
    11161236        {
    11171237                {
     
    11241244                },
    11251245                kGameTypeLostInTime,
    11261246                kFeaturesCD,
    1127                 "intro"
     1247                0,
     1248                0
    11281249        },
    11291250        {
    11301251                {
     
    11371258                },
    11381259                kGameTypeLostInTime,
    11391260                kFeaturesCD,
    1140                 "intro"
     1261                0,
     1262                0
    11411263        },
    11421264        {
    11431265                {
     
    11501272                },
    11511273                kGameTypeLostInTime,
    11521274                kFeaturesCD,
    1153                 "intro"
     1275                0,
     1276                0
    11541277        },
    11551278        {
    11561279                {
     
    11631286                },
    11641287                kGameTypeLostInTime,
    11651288                kFeaturesCD,
    1166                 "intro"
     1289                0,
     1290                0
    11671291        },
    11681292        {
    11691293                {
     
    11761300                },
    11771301                kGameTypeLostInTime,
    11781302                kFeaturesCD,
    1179                 "intro"
     1303                0,
     1304                0
    11801305        },
    11811306        {
    11821307                {
     
    11891314                },
    11901315                kGameTypeLostInTime,
    11911316                kFeaturesCD,
    1192                 "intro"
     1317                0,
     1318                0
    11931319        },
    11941320        { // Supplied by SiRoCs in bug report #2093672
    11951321                {
     
    12021328                },
    12031329                kGameTypeLostInTime,
    12041330                kFeaturesCD,
    1205                 "intro"
     1331                0,
     1332                0
    12061333        },
    12071334        { // Supplied by SiRoCs in bug report #2093672
    12081335                {
     
    12151342                },
    12161343                kGameTypeLostInTime,
    12171344                kFeaturesCD,
    1218                 "intro"
     1345                0,
     1346                0
    12191347        },
    12201348        { // Supplied by SiRoCs in bug report #2093672
    12211349                {
     
    12281356                },
    12291357                kGameTypeLostInTime,
    12301358                kFeaturesCD,
    1231                 "intro"
     1359                0,
     1360                0
    12321361        },
    12331362        { // Supplied by SiRoCs in bug report #2093672
    12341363                {
     
    12411370                },
    12421371                kGameTypeLostInTime,
    12431372                kFeaturesCD,
    1244                 "intro"
     1373                0,
     1374                0
    12451375        },
    12461376        { // Supplied by SiRoCs in bug report #2093672
    12471377                {
     
    12541384                },
    12551385                kGameTypeLostInTime,
    12561386                kFeaturesCD,
    1257                 "intro"
     1387                0,
     1388                0
    12581389        },
    12591390        { // Supplied by SiRoCs in bug report #2093672
    12601391                {
     
    12671398                },
    12681399                kGameTypeLostInTime,
    12691400                kFeaturesCD,
    1270                 "intro"
     1401                0,
     1402                0
    12711403        },
    12721404        {
    12731405                {
     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                0
     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                0
     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                0
     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                {
    12741462                        "lostintime",
    12751463                        "Demo",
    12761464                        AD_ENTRY1("demo.stk", "c06f8cc20eb239d4c71f225ce3093edf"),
     
    12801468                },
    12811469                kGameTypeLostInTime,
    12821470                kFeaturesAdlib,
    1283                 "demo"
     1471                "demo.stk",
     1472                "demo.tot"
    12841473        },
    12851474        {
    12861475                {
     
    12931482                },
    12941483                kGameTypeLostInTime,
    12951484                kFeaturesAdlib,
    1296                 "demo"
     1485                "demo.stk",
     1486                "demo.tot"
    12971487        },
    12981488        {
    12991489                {
     
    13061496                },
    13071497                kGameTypeGob3,
    13081498                kFeaturesAdlib,
    1309                 "intro"
     1499                0,
     1500                0
    13101501        },
    13111502        { // Supplied by raziel_ in bug report #1891869
    13121503                {
     
    13191510                },
    13201511                kGameTypeGob3,
    13211512                kFeaturesAdlib,
    1322                 "intro"
     1513                0,
     1514                0
    13231515        },
    13241516        { // Supplied by fac76 in bug report #1742716
    13251517                {
     
    13361528                },
    13371529                kGameTypeGob3,
    13381530                kFeaturesAdlib,
    1339                 "intro"
     1531                0,
     1532                0
    13401533        },
    13411534        {
    13421535                {
     
    13491542                },
    13501543                kGameTypeGob3,
    13511544                kFeaturesAdlib,
    1352                 "intro"
     1545                0,
     1546                0
    13531547        },
    13541548        { // Supplied by paul66 in bug report #1652352
    13551549                {
     
    13621556                },
    13631557                kGameTypeGob3,
    13641558                kFeaturesAdlib,
    1365                 "intro"
     1559                0,
     1560                0
    13661561        },
    13671562        {
    13681563                {
     
    13751570                },
    13761571                kGameTypeGob3,
    13771572                kFeaturesAdlib,
    1378                 "intro"
     1573                0,
     1574                0
    13791575        },
    13801576        { // Supplied by Paranoimia on #scummvm
    13811577                {
     
    13881584                },
    13891585                kGameTypeGob3,
    13901586                kFeaturesAdlib,
    1391                 "intro"
     1587                0,
     1588                0
    13921589        },
    13931590        {
    13941591                {
     
    14011598                },
    14021599                kGameTypeGob3,
    14031600                kFeaturesAdlib,
    1404                 "intro"
     1601                0,
     1602                0
    14051603        },
    14061604        {
    14071605                {
     
    14141612                },
    14151613                kGameTypeGob3,
    14161614                kFeaturesAdlib,
    1417                 "intro"
     1615                0,
     1616                0
    14181617        },
    14191618        { // Supplied by SiRoCs in bug report #2098621
    14201619                {
     
    14271626                },
    14281627                kGameTypeGob3,
    14291628                kFeaturesAdlib,
    1430                 "intro"
     1629                0,
     1630                0
    14311631        },
    14321632        {
    14331633                {
     
    14401640                },
    14411641                kGameTypeGob3,
    14421642                kFeaturesNone,
    1443                 "menu"
     1643                0,
     1644                "menu.tot"
    14441645        },
    14451646        {
    14461647                {
     
    14531654                },
    14541655                kGameTypeGob3,
    14551656                kFeaturesNone,
    1456                 "menu"
     1657                0,
     1658                "menu.tot"
    14571659        },
    14581660        {
    14591661                {
     
    14661668                },
    14671669                kGameTypeGob3,
    14681670                kFeaturesCD,
    1469                 "intro"
     1671                0,
     1672                0
    14701673        },
    14711674        { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
    14721675                {
     
    14791682                },
    14801683                kGameTypeGob3,
    14811684                kFeaturesCD,
    1482                 "intro"
     1685                0,
     1686                0
    14831687        },
    14841688        { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
    14851689                {
     
    14921696                },
    14931697                kGameTypeGob3,
    14941698                kFeaturesCD,
    1495                 "intro"
     1699                0,
     1700                0
    14961701        },
    14971702        { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
    14981703                {
     
    15051710                },
    15061711                kGameTypeGob3,
    15071712                kFeaturesCD,
    1508                 "intro"
     1713                0,
     1714                0
    15091715        },
    15101716        { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
    15111717                {
     
    15181724                },
    15191725                kGameTypeGob3,
    15201726                kFeaturesCD,
    1521                 "intro"
     1727                0,
     1728                0
    15221729        },
    15231730        { // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
    15241731                {
     
    15311738                },
    15321739                kGameTypeGob3,
    15331740                kFeaturesCD,
    1534                 "intro"
     1741                0,
     1742                0
    15351743        },
    15361744        {
    15371745                {
     
    15441752                },
    15451753                kGameTypeGob3,
    15461754                kFeaturesAdlib,
    1547                 "intro"
     1755                0,
     1756                0
    15481757        },
    15491758        {
    15501759                {
     
    15571766                },
    15581767                kGameTypeGob3,
    15591768                kFeaturesAdlib,
    1560                 "intro"
     1769                0,
     1770                0
    15611771        },
    15621772        {
    15631773                {
     
    15701780                },
    15711781                kGameTypeGob3,
    15721782                kFeaturesAdlib,
    1573                 "intro"
     1783                0,
     1784                0
    15741785        },
    15751786        {
    15761787                {
     
    15831794                },
    15841795                kGameTypeGob3,
    15851796                kFeaturesAdlib,
    1586                 "intro"
     1797                0,
     1798                0
    15871799        },
    15881800        {
    15891801                {
     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                {
    15901820                        "inca2",
    15911821                        "",
    15921822                        AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
     
    15961826                },
    15971827                kGameTypeInca2,
    15981828                kFeaturesCD,
    1599                 "intro"
     1829                0,
     1830                0
    16001831        },
    16011832        {
    16021833                {
     
    16091840                },
    16101841                kGameTypeInca2,
    16111842                kFeaturesCD,
    1612                 "intro"
     1843                0,
     1844                0
    16131845        },
    16141846        {
    16151847                {
     
    16221854                },
    16231855                kGameTypeInca2,
    16241856                kFeaturesCD,
    1625                 "intro"
     1857                0,
     1858                0
    16261859        },
    16271860        {
    16281861                {
     
    16351868                },
    16361869                kGameTypeInca2,
    16371870                kFeaturesCD,
    1638                 "intro"
     1871                0,
     1872                0
    16391873        },
    16401874        {
    16411875                {
     
    16481882                },
    16491883                kGameTypeInca2,
    16501884                kFeaturesCD,
    1651                 "intro"
     1885                0,
     1886                0
    16521887        },
    16531888        {
    16541889                {
     
    16611896                },
    16621897                kGameTypeInca2,
    16631898                kFeaturesAdlib,
    1664                 "intro"
     1899                0,
     1900                0
    16651901        },
    16661902        {
    16671903                {
     
    16741910                },
    16751911                kGameTypeInca2,
    16761912                kFeaturesAdlib,
    1677                 "intro"
     1913                0,
     1914                0
    16781915        },
    16791916        {
    16801917                {
     
    16871924                },
    16881925                kGameTypeInca2,
    16891926                kFeaturesAdlib,
    1690                 "intro"
     1927                0,
     1928                0
    16911929        },
    16921930        {
    16931931                {
     
    17001938                },
    17011939                kGameTypeWoodruff,
    17021940                kFeatures640,
    1703                 "intro"
     1941                0,
     1942                0
    17041943        },
    17051944        {
    17061945                {
     
    17131952                },
    17141953                kGameTypeWoodruff,
    17151954                kFeatures640,
    1716                 "intro"
     1955                0,
     1956                0
    17171957        },
    17181958        {
    17191959                {
     
    17261966                },
    17271967                kGameTypeWoodruff,
    17281968                kFeatures640,
    1729                 "intro"
     1969                0,
     1970                0
    17301971        },
    17311972        {
    17321973                {
     
    17391980                },
    17401981                kGameTypeWoodruff,
    17411982                kFeatures640,
    1742                 "intro"
     1983                0,
     1984                0
    17431985        },
    17441986        {
    17451987                {
     
    17521994                },
    17531995                kGameTypeWoodruff,
    17541996                kFeatures640,
    1755                 "intro"
     1997                0,
     1998                0
    17561999        },
    17572000        {
    17582001                {
     
    17652008                },
    17662009                kGameTypeWoodruff,
    17672010                kFeatures640,
    1768                 "intro"
     2011                0,
     2012                0
    17692013        },
    17702014        {
    17712015                {
     
    17782022                },
    17792023                kGameTypeWoodruff,
    17802024                kFeatures640,
    1781                 "intro"
     2025                0,
     2026                0
    17822027        },
    17832028        {
    17842029                {
     
    17912036                },
    17922037                kGameTypeWoodruff,
    17932038                kFeatures640,
    1794                 "intro"
     2039                0,
     2040                0
    17952041        },
    17962042        {
    17972043                {
     
    18042050                },
    18052051                kGameTypeWoodruff,
    18062052                kFeatures640,
    1807                 "intro"
     2053                0,
     2054                0
    18082055        },
    18092056        {
    18102057                {
     
    18172064                },
    18182065                kGameTypeWoodruff,
    18192066                kFeatures640,
    1820                 "intro"
     2067                0,
     2068                0
    18212069        },
    18222070        {
    18232071                {
     
    18302078                },
    18312079                kGameTypeWoodruff,
    18322080                kFeatures640,
    1833                 "intro"
     2081                0,
     2082                0
    18342083        },
    18352084        { // Supplied by jvprat on #scummvm
    18362085                {
     
    18432092                },
    18442093                kGameTypeWoodruff,
    18452094                kFeatures640,
    1846                 "intro"
     2095                0,
     2096                0
    18472097        },
    18482098        { // Supplied by jvprat on #scummvm
    18492099                {
     
    18562106                },
    18572107                kGameTypeWoodruff,
    18582108                kFeatures640,
    1859                 "intro"
     2109                0,
     2110                0
    18602111        },
    18612112        { // Supplied by jvprat on #scummvm
    18622113                {
     
    18692120                },
    18702121                kGameTypeWoodruff,
    18712122                kFeatures640,
    1872                 "intro"
     2123                0,
     2124                0
    18732125        },
    18742126        { // Supplied by jvprat on #scummvm
    18752127                {
     
    18822134                },
    18832135                kGameTypeWoodruff,
    18842136                kFeatures640,
    1885                 "intro"
     2137                0,
     2138                0
    18862139        },
    18872140        { // Supplied by jvprat on #scummvm
    18882141                {
     
    18952148                },
    18962149                kGameTypeWoodruff,
    18972150                kFeatures640,
    1898                 "intro"
     2151                0,
     2152                0
    18992153        },
    19002154        { // Supplied by Hkz on #scummvm
    19012155                {
     
    19082162                },
    19092163                kGameTypeWoodruff,
    19102164                kFeatures640,
    1911                 "intro"
     2165                0,
     2166                0
    19122167        },
    19132168        { // Supplied by Hkz on #scummvm
    19142169                {
     
    19212176                },
    19222177                kGameTypeWoodruff,
    19232178                kFeatures640,
    1924                 "intro"
     2179                0,
     2180                0
    19252181        },
    19262182        { // Supplied by Hkz on #scummvm
    19272183                {
     
    19342190                },
    19352191                kGameTypeWoodruff,
    19362192                kFeatures640,
    1937                 "intro"
     2193                0,
     2194                0
    19382195        },
    19392196        { // Supplied by DjDiabolik in bug report #1971294
    19402197                {
     
    19472204                },
    19482205                kGameTypeWoodruff,
    19492206                kFeatures640,
    1950                 "intro"
     2207                0,
     2208                0
    19512209        },
    19522210        { // Supplied by DjDiabolik in bug report #1971294
    19532211                {
     
    19602218                },
    19612219                kGameTypeWoodruff,
    19622220                kFeatures640,
    1963                 "intro"
     2221                0,
     2222                0
    19642223        },
    19652224        { // Supplied by DjDiabolik in bug report #1971294
    19662225                {
     
    19732232                },
    19742233                kGameTypeWoodruff,
    19752234                kFeatures640,
    1976                 "intro"
     2235                0,
     2236                0
    19772237        },
    19782238        { // Supplied by DjDiabolik in bug report #1971294
    19792239                {
     
    19862246                },
    19872247                kGameTypeWoodruff,
    19882248                kFeatures640,
    1989                 "intro"
     2249                0,
     2250                0
    19902251        },
    19912252        { // Supplied by DjDiabolik in bug report #1971294
    19922253                {
     
    19992260                },
    20002261                kGameTypeWoodruff,
    20012262                kFeatures640,
    2002                 "intro"
     2263                0,
     2264                0
    20032265        },
    20042266        { // Supplied by goodoldgeorg in bug report #2098838
    20052267                {
     
    20122274                },
    20132275                kGameTypeWoodruff,
    20142276                kFeatures640,
    2015                 "intro"
     2277                0,
     2278                0
    20162279        },
    20172280        {
    20182281                {
     
    20252288                },
    20262289                kGameTypeDynasty,
    20272290                kFeatures640,
    2028                 "intro"
     2291                0,
     2292                0
    20292293        },
    20302294        {
    20312295                {
     
    20382302                },
    20392303                kGameTypeDynasty,
    20402304                kFeatures640,
    2041                 "intro"
     2305                0,
     2306                0
    20422307        },
    20432308        {
    20442309                {
     
    20512316                },
    20522317                kGameTypeDynasty,
    20532318                kFeatures640,
    2054                 "intro"
     2319                0,
     2320                0
    20552321        },
    20562322        {
    20572323                {
     
    20642330                },
    20652331                kGameTypeDynasty,
    20662332                kFeatures640,
    2067                 "intro"
     2333                0,
     2334                0
    20682335        },
    20692336        {
    20702337                {
     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                0
     2349        },
     2350        {
     2351                {
    20712352                        "urban",
    20722353                        "",
    20732354                        AD_ENTRY1s("intro.stk", "3ab2c542bd9216ae5d02cc6f45701ae1", 1252436),
     
    20772358                },
    20782359                kGameTypeUrban,
    20792360                kFeatures640,
    2080                 "intro"
     2361                0,
     2362                0
    20812363        },
     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                0
     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                0
     2391        },
    20822392        { // Supplied by gamin in the forums
    20832393                {
    20842394                        "urban",
     
    20902400                },
    20912401                kGameTypeUrban,
    20922402                kFeatures640,
    2093                 "intro"
     2403                0,
     2404                0
    20942405        },
     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        },
    20952420        { AD_TABLE_END_MARKER, kGameTypeNone, kFeaturesNone, NULL }
    20962421};
    20972422
     
    21072432                },
    21082433                kGameTypeGob1,
    21092434                kFeaturesNone,
    2110                 "intro"
     2435                0,
     2436                0
    21112437        },
    21122438        {
    21132439                {
     
    21202446                },
    21212447                kGameTypeGob1,
    21222448                kFeaturesCD,
    2123                 "intro"
     2449                0,
     2450                0
    21242451        },
    21252452        {
    21262453                {
     
    21332460                },
    21342461                kGameTypeGob2,
    21352462                kFeaturesAdlib,
    2136                 "intro"
     2463                0,
     2464                0
    21372465        },
    21382466        {
    21392467                {
     
    21462474                },
    21472475                kGameTypeGob2,
    21482476                kFeaturesAdlib,
    2149                 "intro"
     2477                0,
     2478                0
    21502479        },
    21512480        {
    21522481                {
     
    21592488                },
    21602489                kGameTypeGob2,
    21612490                kFeaturesCD,
    2162                 "intro"
     2491                0,
     2492                0
    21632493        },
    21642494        {
    21652495                {
     
    21722502                },
    21732503                kGameTypeBargon,
    21742504                kFeaturesNone,
    2175                 "intro"
     2505                0,
     2506                0
    21762507        },
    21772508        {
    21782509                {
     
    21852516                },
    21862517                kGameTypeGob3,
    21872518                kFeaturesAdlib,
    2188                 "intro"
     2519                0,
     2520                0
    21892521        },
    21902522        {
    21912523                {
     
    21982530                },
    21992531                kGameTypeGob3,
    22002532                kFeaturesCD,
    2201                 "intro"
     2533                0,
     2534                0
    22022535        },
    22032536        {
    22042537                {
     
    22112544                },
    22122545                kGameTypeWoodruff,
    22132546                kFeatures640,
    2214                 "intro"
     2547                0,
     2548                0
    22152549        },
    22162550        {
    22172551                {
     
    22242558                },
    22252559                kGameTypeLostInTime,
    22262560                kFeaturesAdlib,
    2227                 "intro"
     2561                0,
     2562                0
    22282563        },
    22292564        {
    22302565                {
     
    22372572                },
    22382573                kGameTypeLostInTime,
    22392574                kFeaturesAdlib,
    2240                 "intro"
     2575                0,
     2576                0
    22412577        },
    22422578        {
    22432579                {
     
    22502586                },
    22512587                kGameTypeLostInTime,
    22522588                kFeaturesCD,
    2253                 "intro"
     2589                0,
     2590                0
    22542591        },
    22552592        {
    22562593                {
     
    22632600                },
    22642601                kGameTypeUrban,
    22652602                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                0
     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                0
     2647        },
    22682648};
    22692649
    22702650static const ADFileBasedFallback fileBased[] = {
     
    22822662        { &fallbackDescs[10], { "intro.stk", "commun1.itk", "musmac1.mid", 0 } },
    22832663        { &fallbackDescs[11], { "intro.stk", "commun1.itk", "lost.lic", 0 } },
    22842664        { &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 } },
    22852668        { 0, { 0 } }
    22862669};
    22872670
     
    23502733void GobEngine::initGame(const GOBGameDescription *gd) {
    23512734        if (gd->startTotBase == 0) {
    23522735                _startTot = new char[10];
    2353                 _startTot0 = new char[11];
    23542736                strcpy(_startTot, "intro.tot");
    2355                 strcpy(_startTot0, "intro0.tot");
    23562737        } else {
    2357                 _startTot = new char[strlen(gd->startTotBase) + 5];
    2358                 _startTot0 = new char[strlen(gd->startTotBase) + 6];
     2738                _startTot = new char[strlen(gd->startTotBase) + 1];
    23592739                strcpy(_startTot, gd->startTotBase);
    2360                 strcpy(_startTot0, gd->startTotBase);
    2361                 strcat(_startTot, ".tot");
    2362                 strcat(_startTot0, "0.tot");
    23632740        }
    2364 
     2741        if (gd->startStkBase == 0) {
     2742                _startStk = new char[10];
     2743                strcpy(_startStk, "intro.stk");
     2744        } else {
     2745                _startStk = new char[strlen(gd->startStkBase) + 1];
     2746                strcpy(_startStk, gd->startStkBase);
     2747        }
    23652748        _gameType = gd->gameType;
    23662749        _features = gd->features;
    23672750        _language = gd->desc.language;
    23682751        _platform = gd->desc.platform;
    23692752}
    2370 
    23712753} // End of namespace Gob
  • engines/gob/draw.h

     
    211211        virtual ~Draw_Bargon() {}
    212212};
    213213
     214class Draw_Fascin: public Draw_v2 {
     215public:
     216        virtual void initScreen();
     217
     218        Draw_Fascin(GobEngine *vm);
     219        virtual ~Draw_Fascin() {}
     220};
     221
    214222// Draw operations
    215223
    216224#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
     31namespace Gob {
     32
     33Draw_Fascin::Draw_Fascin(GobEngine *vm) : Draw_v2(vm) {
     34}
     35
     36void 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
    
     
    557557                _vm->_inter->_variables = 0;
    558558
    559559        strncpy0(_curTotFile, newTotFile, 9);
    560         strcat(_curTotFile, ".TOT");
     560        if (_vm->getGameType() == kGameTypeGeisha)
     561                strcat(_curTotFile, ".0OT");
     562        else
     563                strcat(_curTotFile, ".TOT");
    561564
    562565        if (_vm->_inter->_terminate != 0)
    563566                return;
  • engines/gob/game_v1.cpp

     
    7171                                _vm->_draw->_fontToSprite[i].height = -1;
    7272                        }
    7373
    74                         if (_vm->getPlatform() == Common::kPlatformMacintosh)
     74                        if ((_vm->getPlatform() == Common::kPlatformMacintosh)||
     75                                  (_vm->getPlatform() == Common::kPlatformWindows))
    7576                                _vm->_sound->adlibStop();
    7677                        else
    7778                                _vm->_sound->cdStop();
  • engines/gob/gob.cpp

     
    106106        // Stop all mixer streams (except for the permanent ones).
    107107        _vm->_mixer->stopAll();
    108108
     109        delete[] _startStk;
    109110        delete[] _startTot;
    110         delete[] _startTot0;
    111111}
    112112
    113113const char *GobEngine::getLangDesc(int16 language) const {
     
    249249        }
    250250        _global->_languageWanted = _global->_language;
    251251
    252         _init->initGame(0);
     252        _init->initGame();
    253253
    254254        return Common::kNoError;
    255255}
     
    285285        _sound = new Sound(this);
    286286
    287287        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;
    300301
    301                 case kGameTypeGob2:
    302                         _init = new Init_v2(this);
    303                         _video = new Video_v2(this);
    304                         _inter = new Inter_v2(this);
    305                         _parse = new Parse_v2(this);
    306                         _mult = new Mult_v2(this);
    307                         _draw = new Draw_v2(this);
    308                         _game = new Game_v2(this);
    309                         _map = new Map_v2(this);
    310                         _goblin = new Goblin_v2(this);
    311                         _scenery = new Scenery_v2(this);
    312                         _saveLoad = new SaveLoad_v2(this, _targetName.c_str());
    313                         break;
     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;
    314315
    315                 case kGameTypeBargon:
    316                         _init = new Init_v2(this);
    317                         _video = new Video_v2(this);
    318                         _inter = new Inter_Bargon(this);
    319                         _parse = new Parse_v2(this);
    320                         _mult = new Mult_v2(this);
    321                         _draw = new Draw_Bargon(this);
    322                         _game = new Game_v2(this);
    323                         _map = new Map_v2(this);
    324                         _goblin = new Goblin_v2(this);
    325                         _scenery = new Scenery_v2(this);
    326                         _saveLoad = new SaveLoad_v2(this, _targetName.c_str());
    327                         break;
     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;
    328329
    329                 case kGameTypeWeen:
    330                         _init = new Init_v2(this);
    331                         _video = new Video_v2(this);
    332                         _inter = new Inter_v2(this);
    333                         _parse = new Parse_v2(this);
    334                         _mult = new Mult_v2(this);
    335                         _draw = new Draw_v2(this);
    336                         _game = new Game_v2(this);
    337                         _map = new Map_v2(this);
    338                         _goblin = new Goblin_v2(this);
    339                         _scenery = new Scenery_v2(this);
    340                         _saveLoad = new SaveLoad_v2(this, _targetName.c_str());
    341                         break;
     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;
    342343
    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;
    357357
    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;
    371372
    372                 case kGameTypeWoodruff:
    373                         _init = new Init_v3(this);
    374                         _video = new Video_v2(this);
    375                         _inter = new Inter_v4(this);
    376                         _parse = new Parse_v2(this);
    377                         _mult = new Mult_v2(this);
    378                         _draw = new Draw_v2(this);
    379                         _game = new Game_v2(this);
    380                         _map = new Map_v4(this);
    381                         _goblin = new Goblin_v4(this);
    382                         _scenery = new Scenery_v2(this);
    383                         _saveLoad = new SaveLoad_v4(this, _targetName.c_str());
    384                         break;
     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;
    385386
    386                 case kGameTypeDynasty:
    387                         _init = new Init_v3(this);
    388                         _video = new Video_v2(this);
    389                         _inter = new Inter_v5(this);
    390                         _parse = new Parse_v2(this);
    391                         _mult = new Mult_v2(this);
    392                         _draw = new Draw_v2(this);
    393                         _game = new Game_v2(this);
    394                         _map = new Map_v4(this);
    395                         _goblin = new Goblin_v4(this);
    396                         _scenery = new Scenery_v2(this);
    397                         _saveLoad = new SaveLoad_v4(this, _targetName.c_str());
    398                         break;
     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;
    399400
    400                 case kGameTypeUrban:
    401                         _init = new Init_v3(this);
    402                         _video = new Video_v6(this);
    403                         _inter = new Inter_v6(this);
    404                         _parse = new Parse_v2(this);
    405                         _mult = new Mult_v2(this);
    406                         _draw = new Draw_v2(this);
    407                         _game = new Game_v6(this);
    408                         _map = new Map_v4(this);
    409                         _goblin = new Goblin_v4(this);
    410                         _scenery = new Scenery_v2(this);
    411                         _saveLoad = new SaveLoad_v6(this, _targetName.c_str());
    412                         break;
     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;
    413414
    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;
    418436        }
    419437
    420438        if (is640()) {
  • engines/gob/gob.h

     
    9595        kGameTypeLostInTime,
    9696        kGameTypeInca2,
    9797        kGameTypeDynasty,
    98         kGameTypeUrban
     98        kGameTypeUrban,
     99        kGameTypeArchibald,
     100        kGameTypeSpirou,
     101        kGameTypeFascination,
     102        kGameTypeGeisha,
     103        kGameTypeAdibou4
    99104};
    100105
    101106enum Features {
     
    208213        uint16 _height;
    209214        uint8 _mode;
    210215
     216        char *_startStk;
    211217        char *_startTot;
    212         char *_startTot0;
    213218        bool _copyProtection;
    214219        bool _noMusic;
    215220
  • engines/gob/init.cpp

     
    5555        _vm->_dataIO->closeDataFile();
    5656}
    5757
    58 void Init::initGame(const char *totName) {
     58void Init::initGame() {
    5959        int16 handle2;
    6060        int16 handle;
    6161        int16 imdHandle;
     
    6666
    6767        initVideo();
    6868
    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);
    7970        if (handle2 >= 0) {
    8071                _vm->_dataIO->closeData(handle2);
    81                 _vm->_dataIO->openDataFile("intro.stk");
     72                _vm->_dataIO->openDataFile(_vm->_startStk);
    8273        }
    8374
    8475        _vm->_util->initInput();
     
    142133                delete[] infBuf;
    143134        }
    144135
    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);
    151137        handle = _vm->_dataIO->openData(buffer);
    152138
    153139        if (handle >= 0) {
  • engines/gob/init.h

     
    3232
    3333class Init {
    3434public:
    35         void initGame(const char *totFile);
     35        void initGame();
    3636
    3737        virtual void initVideo() = 0;
    3838
  • engines/gob/init_v2.cpp

     
    5151        _vm->_global->_colorCount = 16;
    5252        if (!_vm->isEGA() &&
    5353           ((_vm->getPlatform() == Common::kPlatformPC) ||
    54              (_vm->getPlatform() == Common::kPlatformMacintosh)) &&
     54             (_vm->getPlatform() == Common::kPlatformMacintosh) ||
     55             (_vm->getPlatform() == Common::kPlatformWindows)) &&
    5556            ((_vm->_global->_videoMode == 0x13) ||
    5657             (_vm->_global->_videoMode == 0x14)))
    5758                _vm->_global->_colorCount = 256;
  • engines/gob/inter.cpp

     
    231231                        break;
    232232
    233233                // WORKAROUND:
    234                 // The EGA and Mac versions of gob1 doesn't add a delay after showing
    235                 // 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.
    236236                if ((_vm->getGameType() == kGameTypeGob1) &&
    237                    (_vm->isEGA() || (_vm->getPlatform() == Common::kPlatformMacintosh))) {
     237                   (  _vm->isEGA() ||
     238                     (_vm->getPlatform() == Common::kPlatformMacintosh) ||
     239                     (_vm->getPlatform() == Common::kPlatformWindows))) {
    238240
    239241                        int addr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData;
    240242
  • engines/gob/inter.h

     
    451451        void oBargon_intro9(OpGobParams &params);
    452452};
    453453
     454class Inter_Fascination : public Inter_v2 {
     455public:
     456        Inter_Fascination(GobEngine *vm);
     457        virtual ~Inter_Fascination() {}
     458
     459protected:
     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 &params);
     483        virtual void executeGoblinOpcode(int i, OpGobParams &params);
     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 &params);
     489        void o2_geUnknown3(OpGobParams &params);
     490        void o2_geUnknown4(OpGobParams &params);
     491        void o2_geUnknown10(OpGobParams &params);
     492        bool o2_feUnknown4(OpFuncParams &params);
     493        void o2_cdUnknown3();
     494        void o2_cdUnknown4();
     495        void o2_cdUnknown5();
     496        void o2_cdUnknown6();
     497        void o2_cdUnknown11();
     498};
     499
    454500class Inter_v3 : public Inter_v2 {
    455501public:
    456502        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
     41namespace Gob {
     42
     43#define OPCODE(x) _OPCODE(Inter_Fascination, x)
     44
     45const 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
     120Inter_Fascination::Inter_Fascination(GobEngine *vm) : Inter_v2(vm) {
     121        setupOpcodes();
     122}
     123
     124void 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
     648void 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
     660void Inter_Fascination::o2_geUnknown2(OpGobParams &params) {
     661        warning("Fascination Unknown GE Function 2\n");
     662}
     663
     664void Inter_Fascination::o2_geUnknown3(OpGobParams &params) {
     665        warning("Fascination Unknown GE Function 3\n");
     666}
     667
     668void Inter_Fascination::o2_geUnknown4(OpGobParams &params) {
     669        warning("Fascination Unknown GE Function 4\n");
     670}
     671
     672void Inter_Fascination::o2_geUnknown10(OpGobParams &params) {
     673        warning("Fascination Unknown GE Function 10\n");
     674}
     675
     676bool Inter_Fascination::o2_feUnknown4(OpFuncParams &params) {
     677        warning("Fascination Unknown FE Function 4\n");
     678        return true;
     679}
     680
     681void 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
     700void Inter_Fascination::o2_cdUnknown4() {
     701        warning("Fascination Unknown CD Function 4 (sub_EE04)\n");
     702}
     703
     704void Inter_Fascination::o2_cdUnknown5() {
     705        warning("Fascination Unknown CD Function 5 (sub_EE29)\n");
     706}
     707
     708void 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
     717void 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
     724bool Inter_Fascination::executeFuncOpcode(byte i, byte j, OpFuncParams &params) {
     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
     743void Inter_Fascination::executeGoblinOpcode(int i, OpGobParams &params) {
     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
     766const char *Inter_Fascination::getOpcodeDrawDesc(byte i) {
     767        return _opcodesDrawFascination[i].desc;
     768}
     769
     770const 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
     777const 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
    
     
    11421142        }
    11431143        // Skipping the copy protection screen in Gobliins 2
    11441144        if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob2) && (offset == 1746)
    1145                         && !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot0)) {
     1145                        && !scumm_stricmp(_vm->_game->_curTotFile, "intro0.tot")) {
    11461146                debugC(2, kDebugGameFlow, "Skipping copy protection screen");
    11471147                return false;
    11481148        }
     
    14361436                buf[size] = 0;
    14371437        }
    14381438
    1439         strcat(buf, ".tot");
     1439        if (_vm->getGameType() == kGameTypeGeisha)
     1440                strcat(buf, ".0ot");
     1441        else
     1442                strcat(buf, ".tot");
    14401443        if (_terminate != 2)
    14411444                _terminate = 1;
    14421445        strcpy(_vm->_game->_totToLoad, buf);
  • engines/gob/module.mk

     
    77        draw_v1.o \
    88        draw_v2.o \
    99        draw_bargon.o \
     10        draw_fascin.o \
    1011        driver_vga.o \
    1112        game.o \
    1213        game_v1.o \
     
    3031        inter_v1.o \
    3132        inter_v2.o \
    3233        inter_bargon.o \
     34        inter_fascin.o \
    3335        inter_v3.o \
    3436        inter_v4.o \
    3537        inter_v5.o \