Merge branch 'master' of https://github.com/scummvm/scummvm into cge2

This commit is contained in:
uruk 2014-05-30 11:14:47 +02:00
commit bb2f8dd68e
294 changed files with 66281 additions and 3940 deletions

View File

@ -138,6 +138,11 @@ ScummVM Team
Benjamin Haisch
Filippos Karapetis
MADS:
Arnaud Boutonne
Paul Gilbert
Filippos Karapetis
Mohawk:
Bastien Bouclet
Matthew Hoops
@ -241,6 +246,10 @@ ScummVM Team
Tucker:
Gregory Montoir - (retired)
Voyeur:
Arnaud Boutonne
Paul Gilbert
Wintermute:
Einar Johan T. Somaaen

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -34,6 +34,9 @@ TARGET ScummVM_A0000658.exe
TARGETPATH sys\bin
TARGETTYPE exe
OPTION GCCE -Wno-multichar -Wno-reorder -Wno-unused -Wno-format -fsigned-char
// fixes error "section .data loaded at [...] overlaps section .text loaded at [...]"
// in future simple add 'a'
LINKEROPTION GCCE -Tdata 0xAA00000
UID 0x100039ce 0xA0000658
@ -90,9 +93,15 @@ STATICLIBRARY esdl.lib
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines
USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE \epoc32\include\mw
SYSTEMINCLUDE \epoc32\include\platform

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -90,9 +90,15 @@ STATICLIBRARY esdl.lib
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines
USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE \epoc32\include\mw
SYSTEMINCLUDE \epoc32\include\platform

View File

@ -76,31 +76,6 @@
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
"..\..\..\..\gui\themes\fonts\Arial.bdf"-"c:\data\scummvm\Arial.bdf"
"..\..\..\..\gui\themes\fonts\Arial12.bdf"-"c:\data\scummvm\Arial12.bdf"
"..\..\..\..\gui\themes\fonts\ArialBold.bdf"-"c:\data\scummvm\ArialBold.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-1.bdf"-"c:\data\scummvm\clR6x12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-2.bdf"-"c:\data\scummvm\clR6x12-iso-8859-2.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-5.bdf"-"c:\data\scummvm\clR6x12-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-7.bdf"-"c:\data\scummvm\clR6x12-iso-8859-7.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12.bdf"-"c:\data\scummvm\clR6x12.bdf"
"..\..\..\..\gui\themes\fonts\courr12-iso-8859-1.bdf"-"c:\data\scummvm\courr12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-1.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-5.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-7.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-7.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8.bdf"-"c:\data\scummvm\fixed5x8.bdf"
"..\..\..\..\gui\themes\fonts\FreeMonoBold.ttf"-"c:\data\scummvm\FreeMonoBold.ttf"
"..\..\..\..\gui\themes\fonts\FreeSans.ttf"-"c:\data\scummvm\FreeSans.ttf"
"..\..\..\..\gui\themes\fonts\FreeSansBold.ttf"-"c:\data\scummvm\FreeSansBold.ttf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-1.bdf"-"c:\data\scummvm\helvB12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-2.bdf"-"c:\data\scummvm\helvB12-iso-8859-2.bdf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-5.bdf"-"c:\data\scummvm\helvB12-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\helvB12.bdf"-"c:\data\scummvm\helvB12.bdf"
"..\..\..\..\gui\themes\fonts\helvBO12-iso-8859-1.bdf"-"c:\data\scummvm\helvBO12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvBO12.bdf"-"c:\data\scummvm\helvBO12.bdf"
"..\..\..\..\gui\themes\fonts\helvR12-iso-8859-1.bdf"-"c:\data\scummvm\helvR12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvR12.bdf"-"c:\data\scummvm\helvR12.bdf"
;"..\..\..\..\gui\themes\"-"c:\data\scummvm\"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\data\scummvm\scummvm.ini",FILENULL

View File

@ -36,7 +36,7 @@
:"ScummVM"
; UID is the app's UID
#{"ScummVM S60v3"},(0xA0000657),1,70,0
#{"ScummVM S60v3"},(0xA0000657),1,70,6
;Supports Series 60 v 3.0
[0x101F7961], 0, 0, 0, {"Series60ProductID"}
@ -84,31 +84,6 @@
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
"..\..\..\..\gui\themes\fonts\Arial.bdf"-"c:\data\scummvm\Arial.bdf"
"..\..\..\..\gui\themes\fonts\Arial12.bdf"-"c:\data\scummvm\Arial12.bdf"
"..\..\..\..\gui\themes\fonts\ArialBold.bdf"-"c:\data\scummvm\ArialBold.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-1.bdf"-"c:\data\scummvm\clR6x12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-2.bdf"-"c:\data\scummvm\clR6x12-iso-8859-2.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-5.bdf"-"c:\data\scummvm\clR6x12-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12-iso-8859-7.bdf"-"c:\data\scummvm\clR6x12-iso-8859-7.bdf"
"..\..\..\..\gui\themes\fonts\clR6x12.bdf"-"c:\data\scummvm\clR6x12.bdf"
"..\..\..\..\gui\themes\fonts\courr12-iso-8859-1.bdf"-"c:\data\scummvm\courr12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-1.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-5.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8-iso-8859-7.bdf"-"c:\data\scummvm\fixed5x8-iso-8859-7.bdf"
"..\..\..\..\gui\themes\fonts\fixed5x8.bdf"-"c:\data\scummvm\fixed5x8.bdf"
"..\..\..\..\gui\themes\fonts\FreeMonoBold.ttf"-"c:\data\scummvm\FreeMonoBold.ttf"
"..\..\..\..\gui\themes\fonts\FreeSans.ttf"-"c:\data\scummvm\FreeSans.ttf"
"..\..\..\..\gui\themes\fonts\FreeSansBold.ttf"-"c:\data\scummvm\FreeSansBold.ttf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-1.bdf"-"c:\data\scummvm\helvB12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-2.bdf"-"c:\data\scummvm\helvB12-iso-8859-2.bdf"
"..\..\..\..\gui\themes\fonts\helvB12-iso-8859-5.bdf"-"c:\data\scummvm\helvB12-iso-8859-5.bdf"
"..\..\..\..\gui\themes\fonts\helvB12.bdf"-"c:\data\scummvm\helvB12.bdf"
"..\..\..\..\gui\themes\fonts\helvBO12-iso-8859-1.bdf"-"c:\data\scummvm\helvBO12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvBO12.bdf"-"c:\data\scummvm\helvBO12.bdf"
"..\..\..\..\gui\themes\fonts\helvR12-iso-8859-1.bdf"-"c:\data\scummvm\helvR12-iso-8859-1.bdf"
"..\..\..\..\gui\themes\fonts\helvR12.bdf"-"c:\data\scummvm\helvR12.bdf"
;"..\..\..\..\gui\themes\"-"c:\data\scummvm\"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\data\scummvm\scummvm.ini",FILENULL

View File

@ -1,16 +1,16 @@
{\rtf1\ansi\ansicpg1251\uc1 \deff0\deflang1049\deflangfe1049{\fonttbl{\f0\froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;}
{\rtf1\ansi\ansicpg1251\uc1 \deff1\deflang1049\deflangfe1049{\fonttbl{\f0\froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset204\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f8\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Tms Rmn;}
{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f28\fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial CYR;}{\f29\fmodern\fcharset204\fprq1{\*\panose 02070309020205020404}Courier New CYR;}
{\f43\froman\fcharset2\fprq2{\*\panose 05030102010509060703}Webdings;}{\f97\fswiss\fcharset204\fprq2{\*\panose 020b0506020202030204}Arial Narrow;}{\f109\froman\fcharset0\fprq2 Times New Roman;}{\f107\froman\fcharset238\fprq2 Times New Roman CE;}
{\f110\froman\fcharset161\fprq2 Times New Roman Greek;}{\f111\froman\fcharset162\fprq2 Times New Roman Tur;}{\f112\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f113\froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f114\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f117\fswiss\fcharset0\fprq2 Arial;}{\f115\fswiss\fcharset238\fprq2 Arial CE;}{\f118\fswiss\fcharset161\fprq2 Arial Greek;}{\f119\fswiss\fcharset162\fprq2 Arial Tur;}
{\f120\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f121\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f122\fswiss\fcharset186\fprq2 Arial Baltic;}{\f125\fmodern\fcharset0\fprq1 Courier New;}{\f123\fmodern\fcharset238\fprq1 Courier New CE;}
{\f126\fmodern\fcharset161\fprq1 Courier New Greek;}{\f127\fmodern\fcharset162\fprq1 Courier New Tur;}{\f128\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f129\fmodern\fcharset178\fprq1 Courier New (Arabic);}
{\f130\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f333\fswiss\fcharset0\fprq2 Arial CYR;}{\f331\fswiss\fcharset238\fprq2 Arial CYR CE;}{\f334\fswiss\fcharset161\fprq2 Arial CYR Greek;}{\f335\fswiss\fcharset162\fprq2 Arial CYR Tur;}
{\f336\fswiss\fcharset177\fprq2 Arial CYR (Hebrew);}{\f337\fswiss\fcharset178\fprq2 Arial CYR (Arabic);}{\f338\fswiss\fcharset186\fprq2 Arial CYR Baltic;}{\f341\fmodern\fcharset0\fprq1 Courier New CYR;}{\f339\fmodern\fcharset238\fprq1 Courier New CYR CE;}
{\f342\fmodern\fcharset161\fprq1 Courier New CYR Greek;}{\f343\fmodern\fcharset162\fprq1 Courier New CYR Tur;}{\f344\fmodern\fcharset177\fprq1 Courier New CYR (Hebrew);}{\f345\fmodern\fcharset178\fprq1 Courier New CYR (Arabic);}
{\f346\fmodern\fcharset186\fprq1 Courier New CYR Baltic;}{\f885\fswiss\fcharset0\fprq2 Arial Narrow;}{\f883\fswiss\fcharset238\fprq2 Arial Narrow CE;}{\f886\fswiss\fcharset161\fprq2 Arial Narrow Greek;}{\f887\fswiss\fcharset162\fprq2 Arial Narrow Tur;}
{\f890\fswiss\fcharset186\fprq2 Arial Narrow Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
{\f30\froman\fcharset2\fprq2{\*\panose 05030102010509060703}Webdings;}{\f31\fswiss\fcharset204\fprq2{\*\panose 020b0506020202030204}Arial Narrow;}{\f44\froman\fcharset0\fprq2 Times New Roman;}{\f42\froman\fcharset238\fprq2 Times New Roman CE;}
{\f45\froman\fcharset161\fprq2 Times New Roman Greek;}{\f46\froman\fcharset162\fprq2 Times New Roman Tur;}{\f47\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f48\froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f49\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fswiss\fcharset0\fprq2 Arial;}{\f50\fswiss\fcharset238\fprq2 Arial CE;}{\f53\fswiss\fcharset161\fprq2 Arial Greek;}{\f54\fswiss\fcharset162\fprq2 Arial Tur;}
{\f55\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f56\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f57\fswiss\fcharset186\fprq2 Arial Baltic;}{\f60\fmodern\fcharset0\fprq1 Courier New;}{\f58\fmodern\fcharset238\fprq1 Courier New CE;}
{\f61\fmodern\fcharset161\fprq1 Courier New Greek;}{\f62\fmodern\fcharset162\fprq1 Courier New Tur;}{\f63\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f64\fmodern\fcharset178\fprq1 Courier New (Arabic);}
{\f65\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f268\fswiss\fcharset0\fprq2 Arial CYR;}{\f266\fswiss\fcharset238\fprq2 Arial CYR CE;}{\f269\fswiss\fcharset161\fprq2 Arial CYR Greek;}{\f270\fswiss\fcharset162\fprq2 Arial CYR Tur;}
{\f271\fswiss\fcharset177\fprq2 Arial CYR (Hebrew);}{\f272\fswiss\fcharset178\fprq2 Arial CYR (Arabic);}{\f273\fswiss\fcharset186\fprq2 Arial CYR Baltic;}{\f276\fmodern\fcharset0\fprq1 Courier New CYR;}{\f274\fmodern\fcharset238\fprq1 Courier New CYR CE;}
{\f277\fmodern\fcharset161\fprq1 Courier New CYR Greek;}{\f278\fmodern\fcharset162\fprq1 Courier New CYR Tur;}{\f279\fmodern\fcharset177\fprq1 Courier New CYR (Hebrew);}{\f280\fmodern\fcharset178\fprq1 Courier New CYR (Arabic);}
{\f281\fmodern\fcharset186\fprq1 Courier New CYR Baltic;}{\f292\fswiss\fcharset0\fprq2 Arial Narrow;}{\f290\fswiss\fcharset238\fprq2 Arial Narrow CE;}{\f293\fswiss\fcharset161\fprq2 Arial Narrow Greek;}{\f294\fswiss\fcharset162\fprq2 Arial Narrow Tur;}
{\f297\fswiss\fcharset186\fprq2 Arial Narrow Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext0 Normal;}{\s1\ql \li0\ri0\sb360\sa240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0
\b\f1\fs32\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 heading 1;}{\s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\rin0\lin0\itap0
@ -22,14 +22,14 @@ heading 5;}{\s6\ql \li0\ri0\sb240\sa60\widctlpar\nooverflow\faroman\rin0\lin0\it
\s9\ql \li0\ri0\sb240\sa60\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \i\f1\fs18\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 heading 9;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive \b\f1\fs20 \sbasedon10
App Text;}{\s16\ql \li0\ri0\sb360\sa240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\f1\fs32\cf9\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext16 Category UID;}{
\s17\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \i\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext17 Comment;}{\s18\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn
\pnlvlblt\ilvl10\ls2047\pnrnot0\pnf43\pnstart1\pnindent283\pnhang{\pntxtb \'a2}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext18 Context;}{\*\cs19 \additive
\pnlvlblt\ilvl10\ls2047\pnrnot0\pnf30\pnstart1\pnindent283\pnhang{\pntxtb \'a2}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext18 Context;}{\*\cs19 \additive
\i\f1\fs20\ulnone\cf0\nosupersub \sbasedon10 Context Comment;}{\s20\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf11\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext20 Definition Term;}{
\s21\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf11\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon20 \snext21 Definition Definition;}{\*\cs22 \additive \scaps\f97\fs20\cf13 \sbasedon10 Graphic Link;}{
\s21\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf11\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon20 \snext21 Definition Definition;}{\*\cs22 \additive \scaps\f31\fs20\cf13 \sbasedon10 Graphic Link;}{
\s23\ql \fi-283\li283\ri0\sa120\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnstart1\pnindent283\pnhang{\pntxtb F}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033
\sbasedon0 \snext23 Tip;}{\s24\ql \fi-283\li283\ri0\sa120\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnstart1\pnindent283\pnhang{\pntxtb ?}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0
\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon23 \snext24 Note;}{\s25\ql \fi-283\li283\ri0\sa120\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf43\pnstart1\pnindent283\pnhang{\pntxtb ~}}
\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon23 \snext24 Note;}{\s25\ql \fi-283\li283\ri0\sa120\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf30\pnstart1\pnindent283\pnhang{\pntxtb ~}}
\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon24 \snext25 Important;}{\s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0
\pnf43\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext26 Index;}{\*\cs27 \additive \b\f2\fs20 \sbasedon10 Key Name;}{
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls2047\ilvl10\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext26 Index;}{\*\cs27 \additive \b\f2\fs20 \sbasedon10 Key Name;}{
\s28\ql \fi-284\li284\ri0\sa120\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent283\pnhang{\pntxta .}}\nooverflow\faroman\ls2047\ilvl11\rin0\lin284\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033
\sbasedon0 \snext28 List Number;}{\s29\ql \fi-284\li284\ri0\sa120\widctlpar\tx284{\*\pn \pnlvlbody\ilvl0\ls2047\pnrnot0\pndec\pnf8 }\nooverflow\faroman\ls2047\rin0\lin284\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033
\sbasedon28 \snext29 List Manual;}{\s30\ql \fi-284\li568\ri0\sa120\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent283\pnhang{\pntxta .}}\nooverflow\faroman\ls2047\ilvl11\rin0\lin568\itap0
@ -44,34 +44,43 @@ Synonyms;}{\*\cs33 \additive \super \sbasedon10 endnote reference;}{\s34\ql \fi-
{\list\listtemplateid1907811784\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li643\jclisttab\tx643 }{\listname ;}\listid-125}{\list\listtemplateid1912741052\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid-120}{\list\listtemplateid-51363132\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid-119}}{\*\listoverridetable{\listoverride\listid-120\listoverridecount0\ls1}
{\listoverride\listid-129\listoverridecount0\ls2}{\listoverride\listid-119\listoverridecount0\ls3}{\listoverride\listid-125\listoverridecount0\ls4}}{\info{\author Fedor}{\operator Fedor}{\creatim\yr2013\mo11\dy30\hr23\min4}
{\revtim\yr2013\mo11\dy30\hr23\min24}{\version4}{\edmins20}{\nofpages7}{\nofwords1441}{\nofchars8219}{\*\company DEV}{\nofcharsws10093}{\vern8249}}\margl1701\margr850\margt1134\margb1134
\deftab708\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl \fet0\sectd
\linex0\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s17\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0
\i\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\lang1033\langfe1033\langnp1033 Author: Fedor Strizhniou.}{\f28
{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid-119}{\list\listtemplateid947971744\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0
\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 }{\listname ;}\listid-2}}{\*\listoverridetable{\listoverride\listid-120\listoverridecount0\ls1}
{\listoverride\listid-129\listoverridecount0\ls2}{\listoverride\listid-119\listoverridecount0\ls3}{\listoverride\listid-125\listoverridecount0\ls4}{\listoverride\listid-120\listoverridecount0\ls5}{\listoverride\listid-129\listoverridecount0\ls6}
{\listoverride\listid-119\listoverridecount0\ls7}{\listoverride\listid-125\listoverridecount0\ls8}{\listoverride\listid-120\listoverridecount0\ls9}{\listoverride\listid-129\listoverridecount0\ls10}{\listoverride\listid-119\listoverridecount0\ls11}
{\listoverride\listid-125\listoverridecount0\ls12}{\listoverride\listid-120\listoverridecount0\ls13}{\listoverride\listid-129\listoverridecount0\ls14}{\listoverride\listid-119\listoverridecount0\ls15}{\listoverride\listid-125\listoverridecount0\ls16}
{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283 }}\ls17}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0
\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283 }}\ls18}}{\info{\author Fedor}{\operator Fedor}{\creatim\yr2013\mo11\dy30\hr23\min4}
{\revtim\yr2013\mo12\dy14\hr12\min27}{\version95}{\edmins91}{\nofpages8}{\nofwords1514}{\nofchars8634}{\*\company DEV}{\nofcharsws0}{\vern8249}}\margl1701\margr850\margt1134\margb1134
\deftab708\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl \fet0{\*\template
E:\\Documents and Settings\\Administrator\\Application Data\\Microsoft\\\'d8\'e0\'e1\'eb\'ee\'ed\'fb\\cshelp2000.dot}\sectd \linex0\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang
{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain
\s17\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \i\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\lang1033\langfe1033\langnp1033 Author: Fedor Strizhniou.}{\f28
\par }{\lang1033\langfe1033\langnp1033 Date: November 2013}{\f28
\par }{\lang1033\langfe1033\langnp1033 Version: 1.7.0
\par }\pard\plain \s1\ql \li0\ri0\sb360\sa240\keepn\widctlpar\nooverflow\faroman\outlinelevel0\rin0\lin0\itap0 \b\f1\fs32\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 {ScummVM Help
\par }\pard\plain \s16\ql \li0\ri0\sb360\sa240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\f1\fs32\cf9\lang2057\langfe1033\kerning28\cgrid\langnp2057\langfenp1033 {\lang1033\langfe1033\langnp1033 0x100039ce}{\lang1059\langfe1033\langnp1059
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 Introduction
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28
About ScummVM Help
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls17\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls17\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {About ScummVM Help
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }{
This help file based on ScummVM forum thread with some elaborations(in Anotherguest section) and text correction. If you wish add some text or translate you may download and modify source document from https://sourceforge.net/projects/scummvms60git/ and t
hen send me to fedor_qd@mail.ru
\par Feel free to replace, merge or write you own instead 1st, 2nd and 3rd guides. Other sections require strict translations. And don\rquote t forget add your name :-)
\par First guide contain help by Anotherguest, second - VincentJ, third - murgo. This doc created by Fedor Strizhniou.
\par Enjoys, cheers! Always yours =)}{\lang1059\langfe1033\langnp1059
\par }{\f29
This help file based on ScummVM forum thread with some elaborations(in Anotherguest section) and text correction. If you wish add some text you may download and modify source document from https://sourceforge.net/projects/scummvms60git/ and then send me t
o fedor_qd@mail.ru
\par First guide contain help by Anotherguest, second - VincentJ, third - murgo.
\par Enjoys, cheers! Always yous, Fedor Strizhniou =)}{\f29\lang1059\langfe1033\langnp1059
\par }{\f29
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 First guide
\par }\pard\plain \s32\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf13\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, UIQ, UIQ3, S80, s80, S90, s90
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }{\f29 UIQ3 devices: To the top right (holding the phone portrait) you four icons, from the top they are
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 1st guide
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls17\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls17\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, UIQ, UIQ3, S80, s80, S90, s90
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }{UIQ3 devices: To the top right (holding the phone portrait) you four icons, from the top they are
\par
\par * Toggle control mode, in control mode you can change text input , screen orientation and screen scaling
\par * Mouse button, toggles between left, right and no button when tapping the screen. If no button is selected, 7 & Space works as left mouse button and 9 & Enter works as the right mouse button.
@ -81,11 +90,11 @@ o fedor_qd@mail.ru
\par * Enter key
\par * Backspace
\par * Arrow Up/Down to scroll the keys available
\par * Virtual keyboard, tap letters to simulate keypresses.
\par * Virtual keyboard, tap letters to simulate key presses.
\par
\par S60 and UIQ3 devices: (Control Key = Green Phone key, to activate/deactivate control mode in SDL)
\par
\par * 1 = change Input Mode: Joystick | Keyboard | Cursor
\par }{\f29
\par }{* 1 = change Input Mode: Joystick | Keyboard | Cursor
\par * 2,'p' = change Video Mode: Landscape | Portrait
\par * 3,'f' = change Orientation Mode for Landscape: 90\'b0 Left | 90\'b0 Right
\par * 4,'s' = Toggle between stretched and non-stretched modes
@ -95,7 +104,7 @@ o fedor_qd@mail.ru
\par * 9,'j' = Joystick input
\par * 0,'m' = Mouse input
\par * Up/Down = Alter global volume when not in 1-1 VGA mode. Pan around in VGA 1-1 Mode
\par * # = On/Off screen keyboard transparency
\par * # = On/Off screen keyboard transparency in some games
\par
\par S80 devices:
\par
@ -110,65 +119,65 @@ o fedor_qd@mail.ru
\par
\par What are these Joystick, Keyboard and Cursor modes anyway?
\par }{\f28
\par }{\f29 Joystick mode sends SDL joystick events to ScummVM which acts as a mouse control in ScummVM. Cursor mod
e sends keyboard arrows instead, so for example it can be used to navigate through directorylist (one hand use perhaps!?) or save games etc. Keyboard mode is only available for S60 and enables multi-tap to enter text characters in save dialogs. These mode
s are implemented at the underlying SDL level, so this determines the types of events that ScummVM receives from SDL.
\par }{Joystick mode sends SDL joystick events to ScummVM which acts as a mouse control in ScummVM. Cursor mode sends keyboard arrows instead, so for example it can be used to navigate
through directorylist (one hand use perhaps!?) or save games etc. Keyboard mode is only available for S60 and enables multi-tap to enter text characters in save dialogs. These modes are implemented at the underlying SDL level, so this determines the types
of events that ScummVM receives from SDL.
\par What are these Shrinked, Zoomed and Upscaled modes anyway?
\par
\par Shrink displays the game on your screen but in a shrinked way, either in Portra
it or Landscape mode, so not all the pixels can be seen. Zoom mode uses the maximum resolution of your phone displaying a smaller part of the game zoomed at 1:1 pixels. For scrolling in S60 Zoom mode: 0+Cursor keys to scroll around, 0+Ok button to center
view. Upscale tries to fill the larger screens on S80/S90 devices in a better way for low resolution games. Currently it uses a pixel interpolation upscaling routine.
\par Shrink displays the game on your screen but in a shrinked way, either in Portrait or Landscape mode, so not all the pixels can be seen. Zoom mode uses the maximum resolution of your phone displaying a smaller part of the game zoomed at 1:1 pixels. For scr
olling in S60 Zoom mode: 0+Cursor keys to scroll around, 0+Ok button to center view. Upscale tries to fill the larger screens on S80/S90 devices in a better way for low resolution games. Currently it uses a pixel interpolation upscaling routine.
\par
\par You can also use a bluetooth mouse with S60v3 devices to control your game. You need the bluetooth hid library from Hinkka http://koti.mbnet.fi/hinkka/Download.html to get it to work properly.
\par }{\f29
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 2nd guide
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls17\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls17\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 Second guide
\par }\pard\plain \s32\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf13\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }{\f29 More user-friendly guide for Nokia phones (based on N96 but should apply to most phones)
\par }{More user-friendly guide for Nokia phones (based on N96 but should apply to most phones)
\par
\par Left Soft Key - Left Click
\par }{\f28
\par }{\f29 Right Soft Key - Right Click
\par }{Right Soft Key - Right Click
\par }{\f28
\par }{\f29 Navigation buttons - Move pointer on screen
\par }{Navigation buttons - Move pointer on screen
\par }{\f28
\par }{\f29 "C" or "Delete Key" - Space Bar (i.e. skip dialogue/cutscene)
\par }{"C" or "Delete Key" - Space Bar (i.e. skip dialogue/cutscene)
\par }{\f28
\par }{\f29 * - Bring up Menu (to Save, Load and change the game's options e.g. enable subtitles, speech etc. Varies from game to game)
\par }{* - Bring up Menu (to Save, Load and change the game's options e.g. enable subtitles, speech etc. Varies from game to game)
\par
\par The <> is a toggling left right mode. I.e. first click is left, next is right, next is left etc.
\par
\par Call Button - Enter/Exit Configuration Mode
\par }{\f28
\par }{\f29 Configuration Mode, when activated, shows the word "CTRL" in green in the upper right corner of the screen. It allows to quickly switch between various functions of ScummVM. The following buttons on your keypad are activated when "CTRL" is disp
layed-
\par
\par 1 - Change Input.
\par }{Configuration Mode, when activated, shows the word "CTRL" in green in the upper right corner of the screen. It allows to quickly switch between various functions of ScummVM. The following buttons on your keypad are activated when "CTRL" is displayed :
\par }{\f29
\par }{1 - Change Input.
\par This is the option you'll probably use the most. There are three settings; A,C and J.
\par
\par A - This is the "Text Input" mode. It allows you to type directly into ScummVM as if you were using a keyboard. Type the same way you would whe
n sending a text message off of your phone. Please note that the pointer is disabled when in this mode. Don't forget to exit Configuration Mode before typing!
\par A - This is the "Text Input" mode. It allows you to type directl
y into ScummVM as if you were using a keyboard. Type the same way you would when sending a text message off of your phone. Please note that the pointer is disabled when in this mode. Don't forget to exit Configuration Mode before typing!
\par
\par C - This is the "Cursor" mode. This emulates the arrow keys of the keyboard. Some games require using this instead of the mouse (e.g. the destruction derby section towards the end of Full Throttle).
\par
\par J - This is the "Joystick/Mouse" mode. Simply put, it allows you to use the navigation buttons to move the pointer around the screen. The left and right mouse buttons are used by the left and right Soft keys.
\par
\par The "C" button emulates the space bar, i.e. skip line of dialogue, skip cutscene or pause game (depending on the game, some games simply use the left mouse button to skip dialogue in which case it will pause the game instead)
\par
\par 2 - Toggle Landscape and Portrait
\par }{\f29
\par }{2 - Toggle Landscape and Portrait
\par Switches the screen output between having the phone held normally (Portrait) or on its side (Landscape). You'll probably never take it off Landscape mode as it offers the better display area.
\par
\par 3 - Change Landscape Orientation
\par Only applies to Landscape mode, simply swaps the screen output between having the phone tilted on its left side or on its right side.
\par
\par 4 - Toggle Zoom On and Off
\par Zooms in on a portion of the screen. Handy for when you are looking through a screen for items or having trouble reading subtitles. Use the navigation buttons for panning around the play area. Don't forget you'll have to exit out of Configuration Mode bef
ore you can move the pointer again. Exiting Configuration Mode does not reset the zoom level.
\par
\par 5 & 6 - Unused
\par Zooms in on a portion of the screen. Handy for when you are looking through a screen for items or having trouble reading subtitles. Use the navigation buttons for panning around the play area. Don't forget you'll have to exit out of Confi
guration Mode before you can move the pointer again. Exiting Configuration Mode does not reset the zoom level.
\par }{\f29
\par }{5 & 6 - Unused
\par
\par 7 - "Text Input" mode. Shortcut for entering "Text Input" mode directly instead of cycling through the other input types using the "1" key.
\par
@ -183,16 +192,16 @@ ore you can move the pointer again. Exiting Configuration Mode does not reset th
\par Up Navigation Button - Increase ScummVM sound volume. Note that the game itself may have its own independent sound settings (usually found under the * menu)
\par
\par Down Navigation Button - Decrease ScummVM sound volume. Note that the game itself may have its own independent sound settings (usually found under the * menu)
\par }{\f29
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 3rd guide
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls17\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls17\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 Third guide
\par }\pard\plain \s32\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\cf13\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }{\f29 ScummVM keys on Nokia e71
(most likely on any other qwerty-device, too), tested on version 0.14.0svn (Feb. 18 2009 05:56:07). Number keys are inserted by first pressing fn-key (leftmost key at bottom row on E71) and then pressing correct key (e.g. 5 is fn+g). You don't have to pre
ss both keys simultaneously.
\par }{ScummVM keys on Nokia e71 (most likely on any other qwerty-device, too), tested on version 0.14.0svn (Feb. 18 2009
05:56:07). Number keys are inserted by first pressing fn-key (leftmost key at bottom row on E71) and then pressing correct key (e.g. 5 is fn+g). You don't have to press both keys simultaneously.
\par
\par Basic keys:
\par
@ -233,8 +242,8 @@ ss both keys simultaneously.
\par t -- Talk to
\par s -- Push
\par y -- Pull
\par
\par and in Full Throttle (from the top of my head):
\par }{\f29
\par }{and in Full Throttle (from the top of my head):
\par
\par k -- kick (foot)
\par t -- talk (mouth)
@ -242,13 +251,13 @@ ss both keys simultaneously.
\par p -- punch (hand)
\par
\par AGI games (King's Quest, Police Quest etc.):
\par The games work beautifully on the E71, but there's some stupid bugs (in input). I recall fi
nding some debug keys and "last sentence" / "inventory" -keys in earlier version, but I can't find them any more. Also you can't turn on sirens in Police Quest, which kinda makes it unplayable.
\par The games work beautifully on the E71, but there's some stupid bugs (in input). I recall finding some debug keys and "last sentence" / "inventory" -keys in earlier version, but I can't find them any more. Also you can't turn on sirens in Police Quest, whi
ch kinda makes it unplayable.
\par
\par There's good side and bad side to each input mode:
\par Keyboard (I use this primarily)
\par
\par * goes to menu
\par }{\f29
\par }{* goes to menu
\par + you can erase text
\par + moving is relatively easy
\par - you can't type in UPPER CASE
@ -256,11 +265,75 @@ nding some debug keys and "last sentence" / "inventory" -keys in earlier version
\par - worthless 'current key' -display on left top corner
\par
\par Joystick / Cursor:
\par
\par + you can access menus
\par }{\f29
\par }{+ you can access menus
\par + you can type numbers (just make sure f-letter in left top corner is red before clicking "numbers". It works kinda funnily, but you'll get hang of it.)
\par - you move mouse cursor which makes walking harder (joystick mode)
\par - you can't erase text
\par }{\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {ScummVM1 engines list
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls18\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls18\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported games
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {agi
\par agos
\par \tab AGOS2
\par cine
\par composer
\par cruise
\par drascula
\par gob
\par groovie
\par \tab GROOVIE2
\par kyra
\par \tab EOB
\par \tab LOL
\par lastexpress
\par made
\par neverhood
\par parallaction
\par queen
\par saga
\par \tab IHNM
\par \tab SAGA2
\par scumm
\par \tab HE
\par \tab SCUMM_7_8
\par touche
\par tucker
\par wintermute
\par
\par There might be some mistakes and some keys missing from the list, feel free to pm me corrections / suggestions.}{\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {ScummVM2 engines list
\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls18\pnrnot0
\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls18\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported games
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {avalanche
\par cge
\par composer
\par draci
\par dreamweb
\par fullpipe
\par hopkins
\par hugo
\par lure
\par mohawk
\par \tab CSTIME
\par \tab MYST
\par \tab RIVEN
\par mortevielle
\par pegasus
\par sci
\par \tab SCI32
\par sky
\par sword1
\par sword2
\par sword25(Not supported)
\par teenagent
\par testbed
\par tinsel
\par toltecs
\par tony
\par toon
\par tsage
\par zvision
\par }}

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\agi
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -63,5 +63,15 @@ SOURCEPATH ..\..\..\..\engines\agos
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,15 @@ SOURCEPATH ..\..\..\..\engines\avalanche
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -34,7 +34,9 @@ TARGET scummvm_base.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
OPTION GCCE -Wno-multichar -Wno-reorder -Wno-unused -Wno-format -fsigned-char
// using option -Wno-psabi to supress warning "note: the mangling of 'va_list' has changed in GCC 4.4"
// compiler will use png.h from libpng.lib instead ScummVM's
OPTION GCCE -Wno-multichar -Wno-reorder -Wno-unused -Wno-format -fsigned-char -Wno-psabi -I'/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/png'
ALWAYS_BUILD_AS_ARM
// Note: the LIB:*.lib statements are used by AdaptAllMMPs.pl, so don't remove them!
@ -54,9 +56,12 @@ USERINCLUDE \epoc32\include\mpeg2dec //\epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h
@ -115,6 +120,7 @@ SOURCEPATH ..\..\..\..\video
//STOP_AUTO_OBJECTS_VIDEO_//
// add a few files manually, since they are not parsed from modules.mk files
SOURCE theora_decoder.cpp
SOURCE bink_decoder.cpp
SOURCE codecs\mpeg.cpp
@ -159,4 +165,5 @@ SOURCE backends\vkeybd\virtual-keyboard.cpp
// Downscaler
SOURCE graphics\scaler\downscaler.cpp
SOURCE graphics\scaler\downscalerARM.s
MACRO SDL_BACKEND

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\cge
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\cine
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\COMPOSER
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\cruise
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\draci
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\drascula
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,15 @@ SOURCEPATH ..\..\..\..\engines\dreamweb
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,15 @@ SOURCEPATH ..\..\..\..\engines\fullpipe
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\gob
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\groovie
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\HOPKINS
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\hugo
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -70,4 +70,15 @@ SOURCEPATH ..\..\..\..\engines\kyra
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\lastexpress
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\lure
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\m4
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,16 @@ SOURCEPATH ..\..\..\..\engines\made
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -76,5 +76,15 @@ SOURCEPATH ..\..\..\..\engines\mohawk
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,15 @@ SOURCEPATH ..\..\..\..\engines\mortevielle
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\neverhood
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\parallaction
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\PEGASUS
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\queen
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -69,4 +69,15 @@ SOURCEPATH ..\..\..\..\engines\saga
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -65,5 +65,15 @@ SOURCEPATH ..\..\..\..\engines\sci
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -81,7 +81,14 @@ SOURCE smush/codec47ARM.s // ARM version: add ASM routines
USERINCLUDE ..\..\..\..\engines ..\..\..\..\engines\scumm\smush ..\..\..\..\engines\scumm\insane
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\sky
USERINCLUDE ..\..\..\..\engines ..\..\..\..\engines\sky\music
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\sword1
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\sword2
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -59,5 +59,15 @@ SOURCEPATH ..\..\..\..\engines\sword25
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
USERINCLUDE ..\..\..\..\engines\sword25\util\lua ..\..\..\..\engines\sword25\util\pluto
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\teenagent
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,15 @@ SOURCEPATH ..\..\..\..\engines\testbed
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,4 +57,15 @@ SOURCEPATH ..\..\..\..\engines\tinsel
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\TOLTECS
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\TONY
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\toon
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\touche
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\tsage
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\tucker
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
@ -57,5 +57,15 @@ SOURCEPATH ..\..\..\..\engines\wintermute
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

View File

@ -2,7 +2,7 @@
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005-2014 The ScummVM Team
* Copyright (C) 2005-2013 The ScummVM project
* Copyright (C) 2013 Strizniou Fedor
*
* ScummVM is the legal property of its developers, whose names
@ -58,5 +58,14 @@ SOURCEPATH ..\..\..\..\engines\zvision
USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src
SYSTEMINCLUDE \epoc32\include\freetype
SYSTEMINCLUDE \epoc32\include\mpeg2dec
SYSTEMINCLUDE \epoc32\include\jpeg
SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include\theora
SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h

61
configure vendored
View File

@ -1843,6 +1843,15 @@ if test "$_global_constructors" = yes; then
fi
echo $_global_constructors
echo_n "Checking for $_host_alias-strings... " >> "$TMPLOG"
if test ! "x$(which $_host_alias-strings 2>/dev/null)" = "x"; then
_strings=$_host_alias-strings
echo yes >> "$TMPLOG"
else
_strings=strings
echo no >> "$TMPLOG"
fi
#
# Check for endianness
#
@ -1857,9 +1866,9 @@ void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
int main() { _ascii (); _ebcdic (); return 0; }
EOF
$CXX $CXXFLAGS -c -o $TMPO.o tmp_endianness_check.cpp
if strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
if $_strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
_endian=big
elif strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
elif $_strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
_endian=little
fi
echo $_endian;
@ -2194,6 +2203,49 @@ case $_host_os in
echo "Set staticlib-prefix to ${_staticlibpath}"
fi
fi
# Fink
# There is no way to get the prefix, so implementing a hack here
fink_version=`fink -V 2>/dev/null`
if test "$?" -eq 0; then
fink_version="`echo "${fink_version}" | sed -ne 's/Package manager version: \([0-9.]*\)/\1/gp'`"
echo_n "You seem to be running Fink version ${fink_version}..."
fink_prefix=`which fink`
# strip off /bin/fink from /sw/bin/port
fink_prefix=`dirname ${fink_prefix}`
fink_prefix=`dirname ${fink_prefix}`
echo "adding ${fink_prefix} to paths"
LDFLAGS="-L${fink_prefix}/lib $LDFLAGS"
CXXFLAGS="-I${fink_prefix}/include $CXXFLAGS"
if test -z "$_staticlibpath"; then
_staticlibpath=${fink_prefix}
echo "Set staticlib-prefix to ${_staticlibpath}"
fi
fi
# Homebrew
brew_version=`brew -v 2>/dev/null`
if test "$?" -eq 0; then
brew_version="`echo "${brew_version}" | sed -ne 's/Homebrew \([0-9.]*\)/\1/gp'`"
echo_n "You seem to be running Homebrew version ${brew_version}..."
brew_prefix=`brew --prefix`
echo "adding ${brew_prefix} to paths"
LDFLAGS="-L${brew_prefix}/lib $LDFLAGS"
CXXFLAGS="-I${brew_prefix}/include $CXXFLAGS"
if test -z "$_staticlibpath"; then
_staticlibpath=${brew_prefix}
echo "Set staticlib-prefix to ${_staticlibpath}"
fi
fi
# If _staticlibpath is not set yet try first /sw (fink) then /usr/local
# (the macports case is handled above).
if test -z "$_staticlibpath"; then
@ -2710,7 +2762,10 @@ if test -n "$_host"; then
# This trick doesn't work for tremor right now, as the PS2 port the resulting library
# libtremor, while our code later on expects it to be called libvorbisidec.
# TODO: Enable tremor, e.g. by adding -ltremor or by renaming the lib.
_tremor=yes
# Disable this for older SDK as this breaks the build otherwise...
if test -z "$PS2SDK_OLD"; then
_tremor=yes
fi
_mad=yes
_zlib=yes
# HACK to fix compilation of C source files for now.

View File

@ -645,6 +645,12 @@ begin_credits("Credits");
add_person("Filippos Karapetis", "[md5]", "");
end_section();
begin_section("MADS");
add_person("Arnaud Boutonn&eacute;", "Strangerke", "");
add_person("Paul Gilbert", "dreammaster", "");
add_person("Filippos Karapetis", "[md5]", "");
end_section();
begin_section("Mohawk");
add_person("Bastien Bouclet", "bgk", "");
add_person("Matthew Hoops", "clone2727", "");
@ -767,6 +773,11 @@ begin_credits("Credits");
add_person("Gregory Montoir", "cyx", "(retired)");
end_section();
begin_section("Voyeur");
add_person("Arnaud Boutonn&eacute;", "Strangerke", "");
add_person("Paul Gilbert", "dreammaster", "");
end_section();
begin_section("Wintermute");
add_person("Einar Johan T. S&oslash;m&aring;en", "somaen", "");
end_section();

View File

@ -32,27 +32,27 @@ namespace Agi {
Console::Console(AgiEngine *vm) : GUI::Debugger() {
_vm = vm;
DCmd_Register("debug", WRAP_METHOD(Console, Cmd_Debug));
DCmd_Register("cont", WRAP_METHOD(Console, Cmd_Cont));
DCmd_Register("agiver", WRAP_METHOD(Console, Cmd_Agiver));
DCmd_Register("flags", WRAP_METHOD(Console, Cmd_Flags));
DCmd_Register("logic0", WRAP_METHOD(Console, Cmd_Logic0));
DCmd_Register("objs", WRAP_METHOD(Console, Cmd_Objs));
DCmd_Register("runopcode", WRAP_METHOD(Console, Cmd_RunOpcode));
DCmd_Register("opcode", WRAP_METHOD(Console, Cmd_Opcode));
DCmd_Register("step", WRAP_METHOD(Console, Cmd_Step));
DCmd_Register("trigger", WRAP_METHOD(Console, Cmd_Trigger));
DCmd_Register("vars", WRAP_METHOD(Console, Cmd_Vars));
DCmd_Register("setvar", WRAP_METHOD(Console, Cmd_SetVar));
DCmd_Register("setflag", WRAP_METHOD(Console, Cmd_SetFlag));
DCmd_Register("setobj", WRAP_METHOD(Console, Cmd_SetObj));
DCmd_Register("room", WRAP_METHOD(Console, Cmd_Room));
DCmd_Register("bt", WRAP_METHOD(Console, Cmd_BT));
registerCmd("debug", WRAP_METHOD(Console, Cmd_Debug));
registerCmd("cont", WRAP_METHOD(Console, Cmd_Cont));
registerCmd("agiver", WRAP_METHOD(Console, Cmd_Agiver));
registerCmd("flags", WRAP_METHOD(Console, Cmd_Flags));
registerCmd("logic0", WRAP_METHOD(Console, Cmd_Logic0));
registerCmd("objs", WRAP_METHOD(Console, Cmd_Objs));
registerCmd("runopcode", WRAP_METHOD(Console, Cmd_RunOpcode));
registerCmd("opcode", WRAP_METHOD(Console, Cmd_Opcode));
registerCmd("step", WRAP_METHOD(Console, Cmd_Step));
registerCmd("trigger", WRAP_METHOD(Console, Cmd_Trigger));
registerCmd("vars", WRAP_METHOD(Console, Cmd_Vars));
registerCmd("setvar", WRAP_METHOD(Console, Cmd_SetVar));
registerCmd("setflag", WRAP_METHOD(Console, Cmd_SetFlag));
registerCmd("setobj", WRAP_METHOD(Console, Cmd_SetObj));
registerCmd("room", WRAP_METHOD(Console, Cmd_Room));
registerCmd("bt", WRAP_METHOD(Console, Cmd_BT));
}
bool Console::Cmd_SetVar(int argc, const char **argv) {
if (argc != 3) {
DebugPrintf("Usage: setvar <varnum> <value>\n");
debugPrintf("Usage: setvar <varnum> <value>\n");
return true;
}
int p1 = (int)atoi(argv[1]);
@ -64,7 +64,7 @@ bool Console::Cmd_SetVar(int argc, const char **argv) {
bool Console::Cmd_SetFlag(int argc, const char **argv) {
if (argc != 3) {
DebugPrintf("Usage: setvar <varnum> <value>\n");
debugPrintf("Usage: setvar <varnum> <value>\n");
return true;
}
int p1 = (int)atoi(argv[1]);
@ -76,7 +76,7 @@ bool Console::Cmd_SetFlag(int argc, const char **argv) {
bool Console::Cmd_SetObj(int argc, const char **argv) {
if (argc != 3) {
DebugPrintf("Usage: setvar <varnum> <value>\n");
debugPrintf("Usage: setvar <varnum> <value>\n");
return true;
}
int p1 = (int)atoi(argv[1]);
@ -88,7 +88,7 @@ bool Console::Cmd_SetObj(int argc, const char **argv) {
bool Console::Cmd_RunOpcode(int argc, const char **argv) {
if (argc < 2) {
DebugPrintf("Usage: runopcode <name> <parameter0> ....\n");
debugPrintf("Usage: runopcode <name> <parameter0> ....\n");
return true;
}
@ -96,7 +96,7 @@ bool Console::Cmd_RunOpcode(int argc, const char **argv) {
if (!strcmp(argv[1], logicNamesCmd[i].name)) {
uint8 p[16];
if ((argc - 2) != logicNamesCmd[i].argumentsLength()) {
DebugPrintf("AGI command wants %d arguments\n", logicNamesCmd[i].argumentsLength());
debugPrintf("AGI command wants %d arguments\n", logicNamesCmd[i].argumentsLength());
return 0;
}
p[0] = argv[2] ? (char)strtoul(argv[2], NULL, 0) : 0;
@ -113,7 +113,7 @@ bool Console::Cmd_RunOpcode(int argc, const char **argv) {
}
}
DebugPrintf("Unknown opcode\n");
debugPrintf("Unknown opcode\n");
return true;
}
@ -125,7 +125,7 @@ bool Console::Cmd_Agiver(int argc, const char **argv) {
maj = (ver >> 12) & 0xf;
min = ver & 0xfff;
DebugPrintf(maj <= 2 ? "%x.%03x\n" : "%x.002.%03x\n", maj, min);
debugPrintf(maj <= 2 ? "%x.%03x\n" : "%x.002.%03x\n", maj, min);
return true;
}
@ -133,17 +133,17 @@ bool Console::Cmd_Agiver(int argc, const char **argv) {
bool Console::Cmd_Flags(int argc, const char **argv) {
int i, j;
DebugPrintf(" ");
debugPrintf(" ");
for (j = 0; j < 10; j++)
DebugPrintf("%d ", j);
DebugPrintf("\n");
debugPrintf("%d ", j);
debugPrintf("\n");
for (i = 0; i < 255;) {
DebugPrintf("%3d ", i);
debugPrintf("%3d ", i);
for (j = 0; j < 10; j++, i++) {
DebugPrintf("%c ", _vm->getflag(i) ? 'T' : 'F');
debugPrintf("%c ", _vm->getflag(i) ? 'T' : 'F');
}
DebugPrintf("\n");
debugPrintf("\n");
}
return true;
@ -154,9 +154,9 @@ bool Console::Cmd_Vars(int argc, const char **argv) {
for (i = 0; i < 255;) {
for (j = 0; j < 5; j++, i++) {
DebugPrintf("%03d:%3d ", i, _vm->getvar(i));
debugPrintf("%03d:%3d ", i, _vm->getvar(i));
}
DebugPrintf("\n");
debugPrintf("\n");
}
return true;
@ -166,7 +166,7 @@ bool Console::Cmd_Objs(int argc, const char **argv) {
unsigned int i;
for (i = 0; i < _vm->_game.numObjects; i++) {
DebugPrintf("%3d]%-24s(%3d)\n", i, _vm->objectName(i), _vm->objectGetLocation(i));
debugPrintf("%3d]%-24s(%3d)\n", i, _vm->objectName(i), _vm->objectGetLocation(i));
}
return true;
@ -174,7 +174,7 @@ bool Console::Cmd_Objs(int argc, const char **argv) {
bool Console::Cmd_Opcode(int argc, const char **argv) {
if (argc != 2 || (strcmp(argv[1], "on") && strcmp(argv[1], "off"))) {
DebugPrintf("Usage: opcode on|off\n");
debugPrintf("Usage: opcode on|off\n");
return true;
}
@ -185,7 +185,7 @@ bool Console::Cmd_Opcode(int argc, const char **argv) {
bool Console::Cmd_Logic0(int argc, const char **argv) {
if (argc != 2 || (strcmp(argv[1], "on") && strcmp(argv[1], "off"))) {
DebugPrintf("Usage: logic0 on|off\n");
debugPrintf("Usage: logic0 on|off\n");
return true;
}
@ -196,7 +196,7 @@ bool Console::Cmd_Logic0(int argc, const char **argv) {
bool Console::Cmd_Trigger(int argc, const char **argv) {
if (argc != 2 || (strcmp(argv[1], "on") && strcmp(argv[1], "off"))) {
DebugPrintf("Usage: trigger on|off\n");
debugPrintf("Usage: trigger on|off\n");
return true;
}
_vm->_debug.ignoretriggers = strcmp (argv[1], "on");
@ -236,13 +236,13 @@ bool Console::Cmd_Room(int argc, const char **argv) {
_vm->newRoom(strtoul(argv[1], NULL, 0));
}
DebugPrintf("Current room: %d\n", _vm->getvar(0));
debugPrintf("Current room: %d\n", _vm->getvar(0));
return true;
}
bool Console::Cmd_BT(int argc, const char **argv) {
DebugPrintf("Current script: %d\nStack depth: %d\n", _vm->_game.lognum, _vm->_game.execStack.size());
debugPrintf("Current script: %d\nStack depth: %d\n", _vm->_game.lognum, _vm->_game.execStack.size());
uint8 *code = NULL;
uint8 op = 0;
@ -257,12 +257,12 @@ bool Console::Cmd_BT(int argc, const char **argv) {
memmove(p, &code[it->curIP], num);
memset(p + num, 0, CMD_BSIZE - num);
DebugPrintf("%d(%d): %s(", it->script, it->curIP, logicNamesCmd[op].name);
debugPrintf("%d(%d): %s(", it->script, it->curIP, logicNamesCmd[op].name);
for (int i = 0; i < num; i++)
DebugPrintf("%d, ", p[i]);
debugPrintf("%d, ", p[i]);
DebugPrintf(")\n");
debugPrintf(")\n");
}
return true;
@ -271,9 +271,9 @@ bool Console::Cmd_BT(int argc, const char **argv) {
MickeyConsole::MickeyConsole(MickeyEngine *mickey) : GUI::Debugger() {
_mickey = mickey;
DCmd_Register("room", WRAP_METHOD(MickeyConsole, Cmd_Room));
DCmd_Register("drawPic", WRAP_METHOD(MickeyConsole, Cmd_DrawPic));
DCmd_Register("drawObj", WRAP_METHOD(MickeyConsole, Cmd_DrawObj));
registerCmd("room", WRAP_METHOD(MickeyConsole, Cmd_Room));
registerCmd("drawPic", WRAP_METHOD(MickeyConsole, Cmd_DrawPic));
registerCmd("drawObj", WRAP_METHOD(MickeyConsole, Cmd_DrawObj));
}
bool MickeyConsole::Cmd_Room(int argc, const char **argv) {
@ -287,7 +287,7 @@ bool MickeyConsole::Cmd_Room(int argc, const char **argv) {
bool MickeyConsole::Cmd_DrawPic(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Picture number>\n", argv[0]);
debugPrintf("Usage: %s <Picture number>\n", argv[0]);
else
_mickey->drawPic(atoi(argv[1]));
return true;
@ -295,7 +295,7 @@ bool MickeyConsole::Cmd_DrawPic(int argc, const char **argv) {
bool MickeyConsole::Cmd_DrawObj(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Object number>\n", argv[0]);
debugPrintf("Usage: %s <Object number>\n", argv[0]);
else
_mickey->drawObj((ENUM_MSA_OBJECT)atoi(argv[1]), 0, 0);
return true;
@ -304,7 +304,7 @@ bool MickeyConsole::Cmd_DrawObj(int argc, const char **argv) {
WinnieConsole::WinnieConsole(WinnieEngine *winnie) : GUI::Debugger() {
_winnie = winnie;
DCmd_Register("curRoom", WRAP_METHOD(WinnieConsole, Cmd_CurRoom));
registerCmd("curRoom", WRAP_METHOD(WinnieConsole, Cmd_CurRoom));
}
bool WinnieConsole::Cmd_CurRoom(int argc, const char **argv) {

View File

@ -2228,10 +2228,10 @@ void MickeyEngine::waitAnyKey(bool anim) {
// Console-related functions
void MickeyEngine::debugCurRoom() {
_console->DebugPrintf("Current Room = %d\n", _gameStateMickey.iRoom);
_console->debugPrintf("Current Room = %d\n", _gameStateMickey.iRoom);
if (_gameStateMickey.iRmObj[_gameStateMickey.iRoom] != IDI_MSA_OBJECT_NONE) {
_console->DebugPrintf("Object %d is in the room\n", _gameStateMickey.iRmObj[_gameStateMickey.iRoom]);
_console->debugPrintf("Object %d is in the room\n", _gameStateMickey.iRmObj[_gameStateMickey.iRoom]);
}
}

View File

@ -1308,7 +1308,7 @@ void WinnieEngine::printStrWinnie(char *szMsg) {
// Console-related functions
void WinnieEngine::debugCurRoom() {
_console->DebugPrintf("Current Room = %d\n", _room);
_console->debugPrintf("Current Room = %d\n", _room);
}
WinnieEngine::WinnieEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {

View File

@ -21,6 +21,7 @@
*/
#include "common/config-manager.h"
#include "common/debug-channels.h"
#include "common/file.h"
#include "common/fs.h"
#include "common/textconsole.h"
@ -144,6 +145,14 @@ AGOSEngine_Elvira1::AGOSEngine_Elvira1(OSystem *system, const AGOSGameDescriptio
AGOSEngine::AGOSEngine(OSystem *system, const AGOSGameDescription *gd)
: Engine(system), _rnd("agos"), _gameDescription(gd) {
DebugMan.addDebugChannel(kDebugOpcode, "opcode", "Opcode debug level");
DebugMan.addDebugChannel(kDebugVGAOpcode, "vga_opcode", "VGA Opcode debug level");
DebugMan.addDebugChannel(kDebugSubroutine, "subroutine", "Subroutine debug level");
DebugMan.addDebugChannel(kDebugVGAScript, "vga_script", "VGA Script debug level");
//Image dumping command disabled as it doesn't work well
#if 0
DebugMan.addDebugChannel(kDebugImageDump, "image_dump", "Enable dumping of images to files");
#endif
_vcPtr = 0;
_vcGetOutOfCode = 0;
_gameOffsetsPtr = 0;
@ -243,13 +252,6 @@ AGOSEngine::AGOSEngine(OSystem *system, const AGOSGameDescription *gd)
_backFlag = false;
_debugMode = 0;
_dumpScripts = false;
_dumpOpcodes = false;
_dumpVgaScripts = false;
_dumpVgaOpcodes = false;
_dumpImages = false;
_copyProtection = false;
_pause = false;
_speech = false;
@ -675,15 +677,6 @@ Common::Error AGOSEngine::init() {
_subtitles = true;
}
// TODO: Use special debug levels instead of the following hack.
_debugMode = (gDebugLevel >= 0);
switch (gDebugLevel) {
case 2: _dumpOpcodes = true; break;
case 3: _dumpVgaOpcodes = true; break;
case 4: _dumpScripts = true; break;
case 5: _dumpVgaScripts = true; break;
}
return Common::kNoError;
}

View File

@ -61,6 +61,14 @@ struct Surface;
namespace AGOS {
enum {
kDebugOpcode = 1 << 0,
kDebugVGAOpcode = 1 << 1,
kDebugSubroutine = 1 << 2,
kDebugVGAScript = 1 << 3,
kDebugImageDump = 1 << 4
};
uint fileReadItemID(Common::SeekableReadStream *in);
#define CHECK_BOUNDS(x, y) assert((uint)(x) < ARRAYSIZE(y))
@ -324,15 +332,9 @@ protected:
bool _fastMode;
bool _backFlag;
uint16 _debugMode;
Common::Language _language;
bool _copyProtection;
bool _pause;
bool _dumpScripts;
bool _dumpOpcodes;
bool _dumpVgaScripts;
bool _dumpVgaOpcodes;
bool _dumpImages;
bool _speech;
bool _subtitles;
bool _vgaVar9;

View File

@ -32,44 +32,21 @@ Debugger::Debugger(AGOSEngine *vm)
: GUI::Debugger() {
_vm = vm;
DCmd_Register("continue", WRAP_METHOD(Debugger, Cmd_Exit));
DCmd_Register("level", WRAP_METHOD(Debugger, Cmd_DebugLevel));
DCmd_Register("music", WRAP_METHOD(Debugger, Cmd_PlayMusic));
DCmd_Register("sound", WRAP_METHOD(Debugger, Cmd_PlaySound));
DCmd_Register("voice", WRAP_METHOD(Debugger, Cmd_PlayVoice));
DCmd_Register("bit", WRAP_METHOD(Debugger, Cmd_SetBit));
DCmd_Register("bit2", WRAP_METHOD(Debugger, Cmd_SetBit2));
DCmd_Register("bit3", WRAP_METHOD(Debugger, Cmd_SetBit3));
DCmd_Register("var", WRAP_METHOD(Debugger, Cmd_SetVar));
DCmd_Register("obj", WRAP_METHOD(Debugger, Cmd_SetObjectFlag));
DCmd_Register("sub", WRAP_METHOD(Debugger, Cmd_StartSubroutine));
DCmd_Register("dumpimage", WRAP_METHOD(Debugger, Cmd_dumpImage));
DCmd_Register("dumpscript", WRAP_METHOD(Debugger, Cmd_dumpScript));
registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
registerCmd("music", WRAP_METHOD(Debugger, Cmd_PlayMusic));
registerCmd("sound", WRAP_METHOD(Debugger, Cmd_PlaySound));
registerCmd("voice", WRAP_METHOD(Debugger, Cmd_PlayVoice));
registerCmd("bit", WRAP_METHOD(Debugger, Cmd_SetBit));
registerCmd("bit2", WRAP_METHOD(Debugger, Cmd_SetBit2));
registerCmd("bit3", WRAP_METHOD(Debugger, Cmd_SetBit3));
registerCmd("var", WRAP_METHOD(Debugger, Cmd_SetVar));
registerCmd("obj", WRAP_METHOD(Debugger, Cmd_SetObjectFlag));
registerCmd("sub", WRAP_METHOD(Debugger, Cmd_StartSubroutine));
registerCmd("dumpimage", WRAP_METHOD(Debugger, Cmd_dumpImage));
registerCmd("dumpscript", WRAP_METHOD(Debugger, Cmd_dumpScript));
}
bool Debugger::Cmd_DebugLevel(int argc, const char **argv) {
if (argc == 1) {
if (_vm->_debugMode == false)
DebugPrintf("Debugging is not enabled at this time\n");
else
DebugPrintf("Debugging is currently set at level %d\n", gDebugLevel);
} else { // set level
gDebugLevel = atoi(argv[1]);
if (0 <= gDebugLevel && gDebugLevel < 11) {
_vm->_debugMode = true;
DebugPrintf("Debug level set to level %d\n", gDebugLevel);
} else if (gDebugLevel < 0) {
_vm->_debugMode = false;
DebugPrintf("Debugging is now disabled\n");
} else
DebugPrintf("Not a valid debug level (0 - 10)\n");
}
return true;
}
bool Debugger::Cmd_PlayMusic(int argc, const char **argv) {
if (argc > 1) {
uint music = atoi(argv[1]);
@ -83,9 +60,9 @@ bool Debugger::Cmd_PlayMusic(int argc, const char **argv) {
_vm->playMusic(music, 0);
}
} else
DebugPrintf("Music out of range (0 - %d)\n", _vm->_numMusic);
debugPrintf("Music out of range (0 - %d)\n", _vm->_numMusic);
} else
DebugPrintf("Syntax: music <musicnum>\n");
debugPrintf("Syntax: music <musicnum>\n");
return true;
}
@ -96,9 +73,9 @@ bool Debugger::Cmd_PlaySound(int argc, const char **argv) {
if (sound <= _vm->_numSFX)
_vm->_sound->playEffects(sound);
else
DebugPrintf("Sound out of range (0 - %d)\n", _vm->_numSFX);
debugPrintf("Sound out of range (0 - %d)\n", _vm->_numSFX);
} else
DebugPrintf("Syntax: sound <soundnum>\n");
debugPrintf("Syntax: sound <soundnum>\n");
return true;
}
@ -109,9 +86,9 @@ bool Debugger::Cmd_PlayVoice(int argc, const char **argv) {
if (voice <= _vm->_numSpeech)
_vm->_sound->playVoice(voice);
else
DebugPrintf("Voice out of range (0 - %d)\n", _vm->_numSpeech);
debugPrintf("Voice out of range (0 - %d)\n", _vm->_numSpeech);
} else
DebugPrintf("Syntax: voice <voicenum>\n");
debugPrintf("Syntax: voice <voicenum>\n");
return true;
}
@ -123,15 +100,15 @@ bool Debugger::Cmd_SetBit(int argc, const char **argv) {
value = atoi(argv[2]);
if (value <= 1) {
_vm->setBitFlag(bit, value != 0);
DebugPrintf("Set bit %d to %d\n", bit, value);
debugPrintf("Set bit %d to %d\n", bit, value);
} else
DebugPrintf("Bit value out of range (0 - 1)\n");
debugPrintf("Bit value out of range (0 - 1)\n");
} else if (argc > 1) {
bit = atoi(argv[1]);
value = _vm->getBitFlag(bit);
DebugPrintf("Bit %d is %d\n", bit, value);
debugPrintf("Bit %d is %d\n", bit, value);
} else
DebugPrintf("Syntax: bit <bitnum> <value>\n");
debugPrintf("Syntax: bit <bitnum> <value>\n");
return true;
}
@ -143,18 +120,18 @@ bool Debugger::Cmd_SetBit2(int argc, const char **argv) {
value = atoi(argv[2]);
if (value == 0) {
_vm->_bitArrayTwo[bit / 16] &= ~(1 << (bit & 15));
DebugPrintf("Set bit2 %d to %d\n", bit, value);
debugPrintf("Set bit2 %d to %d\n", bit, value);
} else if (value == 1) {
_vm->_bitArrayTwo[bit / 16] |= (1 << (bit & 15));
DebugPrintf("Set bit2 %d to %d\n", bit, value);
debugPrintf("Set bit2 %d to %d\n", bit, value);
} else
DebugPrintf("Bit2 value out of range (0 - 1)\n");
debugPrintf("Bit2 value out of range (0 - 1)\n");
} else if (argc > 1) {
bit = atoi(argv[1]);
value = (_vm->_bitArrayTwo[bit / 16] & (1 << (bit & 15))) != 0;
DebugPrintf("Bit2 %d is %d\n", bit, value);
debugPrintf("Bit2 %d is %d\n", bit, value);
} else
DebugPrintf("Syntax: bit2 <bitnum> <value>\n");
debugPrintf("Syntax: bit2 <bitnum> <value>\n");
return true;
}
@ -166,18 +143,18 @@ bool Debugger::Cmd_SetBit3(int argc, const char **argv) {
value = atoi(argv[2]);
if (value == 0) {
_vm->_bitArrayThree[bit / 16] &= ~(1 << (bit & 15));
DebugPrintf("Set bit3 %d to %d\n", bit, value);
debugPrintf("Set bit3 %d to %d\n", bit, value);
} else if (value == 1) {
_vm->_bitArrayThree[bit / 16] |= (1 << (bit & 15));
DebugPrintf("Set bit3 %d to %d\n", bit, value);
debugPrintf("Set bit3 %d to %d\n", bit, value);
} else
DebugPrintf("Bit3 value out of range (0 - 1)\n");
debugPrintf("Bit3 value out of range (0 - 1)\n");
} else if (argc > 1) {
bit = atoi(argv[1]);
value = (_vm->_bitArrayThree[bit / 16] & (1 << (bit & 15))) != 0;
DebugPrintf("Bit3 %d is %d\n", bit, value);
debugPrintf("Bit3 %d is %d\n", bit, value);
} else
DebugPrintf("Syntax: bit3 <bitnum> <value>\n");
debugPrintf("Syntax: bit3 <bitnum> <value>\n");
return true;
}
@ -190,15 +167,15 @@ bool Debugger::Cmd_SetVar(int argc, const char **argv) {
if (argc > 2) {
value = atoi(argv[2]);
_vm->writeVariable(var, value);
DebugPrintf("Set var %d to %d\n", var, value);
debugPrintf("Set var %d to %d\n", var, value);
} else {
value = _vm->readVariable(var);
DebugPrintf("Var %d is %d\n", var, value);
debugPrintf("Var %d is %d\n", var, value);
}
} else
DebugPrintf("Var out of range (0 - %d)\n", _vm->_numVars - 1);
debugPrintf("Var out of range (0 - %d)\n", _vm->_numVars - 1);
} else
DebugPrintf("Syntax: var <varnum> <value>\n");
debugPrintf("Syntax: var <varnum> <value>\n");
return true;
}
@ -217,22 +194,22 @@ bool Debugger::Cmd_SetObjectFlag(int argc, const char **argv) {
if (argc > 3) {
value = atoi(argv[3]);
o->objectFlagValue[offs] = value;
DebugPrintf("Object %d Flag %d set to %d\n", obj, prop, value);
debugPrintf("Object %d Flag %d set to %d\n", obj, prop, value);
} else {
value = o->objectFlagValue[offs];
DebugPrintf("Object %d Flag %d is %d\n", obj, prop, value);
debugPrintf("Object %d Flag %d is %d\n", obj, prop, value);
}
} else {
DebugPrintf("Object flag out of range\n");
debugPrintf("Object flag out of range\n");
}
} else {
DebugPrintf("Item isn't an object\n");
debugPrintf("Item isn't an object\n");
}
} else {
DebugPrintf("Item out of range (1 - %d)\n", _vm->_itemArraySize - 1);
debugPrintf("Item out of range (1 - %d)\n", _vm->_itemArraySize - 1);
}
} else {
DebugPrintf("Syntax: obj <itemnum> <flag> <value>\n");
debugPrintf("Syntax: obj <itemnum> <flag> <value>\n");
}
return true;
@ -246,7 +223,7 @@ bool Debugger::Cmd_StartSubroutine(int argc, const char **argv) {
if (sub != NULL)
_vm->startSubroutine(sub);
} else
DebugPrintf("Subroutine %d\n", _vm->_currentTable->id);
debugPrintf("Subroutine %d\n", _vm->_currentTable->id);
return true;
}
@ -259,11 +236,11 @@ bool Debugger::Cmd_dumpImage(int argc, const char **argv) {
if (vpe->vgaFile2 != NULL) {
_vm->dumpVgaBitmaps(zoneNum);
} else {
DebugPrintf("Invalid Zone Number %d\n", zoneNum);
debugPrintf("Invalid Zone Number %d\n", zoneNum);
}
} else
DebugPrintf("Syntax: dumpimage <zonenum>\n");
debugPrintf("Syntax: dumpimage <zonenum>\n");
return true;
}
@ -276,11 +253,11 @@ bool Debugger::Cmd_dumpScript(int argc, const char **argv) {
if (vpe->vgaFile1 != NULL) {
_vm->dumpVgaFile(vpe->vgaFile1);
} else {
DebugPrintf("Invalid Zone Number %d\n", zoneNum);
debugPrintf("Invalid Zone Number %d\n", zoneNum);
}
} else
DebugPrintf("Syntax: dumpscript <zonenum>\n");
debugPrintf("Syntax: dumpscript <zonenum>\n");
return true;
}

View File

@ -37,7 +37,6 @@ public:
private:
AGOSEngine *_vm;
bool Cmd_DebugLevel(int argc, const char **argv);
bool Cmd_PlayMusic(int argc, const char **argv);
bool Cmd_PlaySound(int argc, const char **argv);
bool Cmd_PlayVoice(int argc, const char **argv);

View File

@ -20,6 +20,7 @@
*
*/
#include "common/debug-channels.h"
#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
@ -1129,7 +1130,7 @@ void AGOSEngine::animate(uint16 windowNum, uint16 zoneNum, uint16 vgaSpriteId, i
assert(READ_BE_UINT16(&((AnimationHeader_WW *) p)->id) == vgaSpriteId);
}
if (_dumpVgaScripts) {
if (DebugMan.isDebugChannelEnabled(kDebugVGAScript)) {
if (getGameType() == GType_FF || getGameType() == GType_PP) {
dumpVgaScript(_curVgaFile1 + READ_LE_UINT16(&((AnimationHeader_Feeble*)p)->scriptOffs), zoneNum, vgaSpriteId);
} else if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
@ -1235,7 +1236,7 @@ void AGOSEngine::setImage(uint16 vgaSpriteId, bool vgaScript) {
}
}
if (_dumpVgaScripts) {
if (DebugMan.isDebugChannelEnabled(kDebugVGAScript)) {
if (getGameType() == GType_FF || getGameType() == GType_PP) {
dumpVgaScript(_curVgaFile1 + READ_LE_UINT16(&((ImageHeader_Feeble*)b)->scriptOffs), zoneNum, vgaSpriteId);
} else if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {

View File

@ -22,6 +22,7 @@
// Item script opcodes for Simon1/Simon2
#include "common/debug-channels.h"
#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
@ -987,7 +988,7 @@ int AGOSEngine::runScript() {
return 1;
do {
if (_dumpOpcodes)
if (DebugMan.isDebugChannelEnabled(kDebugOpcode))
dumpOpcode(_codePtr);
if (getGameType() == GType_ELVIRA1) {

View File

@ -20,8 +20,7 @@
*
*/
#include "common/debug-channels.h"
#include "common/file.h"
#include "common/textconsole.h"
@ -531,7 +530,7 @@ int AGOSEngine::startSubroutine(Subroutine *sub) {
_classMode1 = 0;
_classMode2 = 0;
if (_dumpScripts)
if (DebugMan.isDebugChannelEnabled(kDebugSubroutine))
dumpSubroutine(sub);
if (++_recursionDepth > 40)
@ -564,8 +563,7 @@ restart:
else
_codePtr += 8;
if (_dumpOpcodes)
debug("; %d", sub->id);
debugC(kDebugOpcode, "; %d", sub->id);
result = runScript();
if (result != 0) {
break;

View File

@ -27,6 +27,7 @@
#include "agos/intern.h"
#include "agos/vga.h"
#include "common/debug-channels.h"
#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
@ -152,7 +153,7 @@ void AGOSEngine::runVgaScript() {
for (;;) {
uint opcode;
if (_dumpVgaOpcodes) {
if (DebugMan.isDebugChannelEnabled(kDebugVGAOpcode)) {
if (_vcPtr != (const byte *)&_vcGetOutOfCode) {
debugN("%.5d %.5X: %5d %4d ", _vgaTickCounter, (unsigned int)(_vcPtr - _curVgaFile1), _vgaCurSpriteId, _vgaCurZoneNum);
dumpVideoScript(_vcPtr, true);
@ -381,8 +382,7 @@ void AGOSEngine::vcSkipNextInstruction() {
_vcPtr += opcodeParamLenPN[opcode];
}
if (_dumpVgaOpcodes)
debugN("; skipped\n");
debugCN(kDebugVGAOpcode, "; skipped\n");
}
// VGA Script commands
@ -648,7 +648,7 @@ void AGOSEngine::drawImage_init(int16 image, uint16 palette, int16 x, int16 y, u
if (height == 0 || width == 0)
return;
if (_dumpImages)
if (DebugMan.isDebugChannelEnabled(kDebugImageDump))
dumpSingleBitmap(_vgaCurZoneNum, state.image, state.srcPtr, width, height,
state.palette);
state.width = state.draw_width = width; /* cl */

View File

@ -31,7 +31,7 @@
namespace Avalanche {
AvalancheConsole::AvalancheConsole(AvalancheEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("magic_lines", WRAP_METHOD(AvalancheConsole, Cmd_MagicLines));
registerCmd("magic_lines", WRAP_METHOD(AvalancheConsole, Cmd_MagicLines));
}
AvalancheConsole::~AvalancheConsole() {
@ -42,7 +42,7 @@ AvalancheConsole::~AvalancheConsole() {
*/
bool AvalancheConsole::Cmd_MagicLines(int argc, const char **argv) {
if (argc != 1) {
DebugPrintf("Usage: %s\n", argv[0]);
debugPrintf("Usage: %s\n", argv[0]);
return true;
}

View File

@ -49,6 +49,9 @@ GhostRoom::GhostRoom(AvalancheEngine *vm) {
_greldetCount = 0;
_redGreldet = false;
_wasLoaded = false;
_ghost = nullptr;
_glerk = nullptr;
}
GhostRoom::~GhostRoom() {

View File

@ -26,7 +26,7 @@
namespace CGE {
CGEConsole::CGEConsole(CGEEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("Boundaries", WRAP_METHOD(CGEConsole, Cmd_boundaries));
registerCmd("Boundaries", WRAP_METHOD(CGEConsole, Cmd_boundaries));
}
CGEConsole::~CGEConsole() {
@ -37,7 +37,7 @@ CGEConsole::~CGEConsole() {
*/
bool CGEConsole::Cmd_boundaries(int argc, const char **argv) {
if (argc != 1) {
DebugPrintf("Usage: %s\n", argv[0]);
debugPrintf("Usage: %s\n", argv[0]);
return true;
}

View File

@ -29,7 +29,7 @@ bool labyrinthCheat;
CineConsole::CineConsole(CineEngine *vm) : GUI::Debugger(), _vm(vm) {
assert(_vm);
DCmd_Register("labyrinthCheat", WRAP_METHOD(CineConsole, Cmd_LabyrinthCheat));
registerCmd("labyrinthCheat", WRAP_METHOD(CineConsole, Cmd_LabyrinthCheat));
labyrinthCheat = false;
}

View File

@ -1902,7 +1902,9 @@ void maskBgOverlay(const byte *bgPtr, const byte *maskPtr, int16 width, int16 he
destPtr++;
srcPtr++;
maskPtr++;
if (maskPtr)
maskPtr++;
}
}

View File

@ -332,9 +332,9 @@ byte *Palette::save(byte *buf, const uint size, const Graphics::PixelFormat form
// Save the palette to the output in the specified format
for (uint i = firstIndex; i < firstIndex + numColors; i++) {
const uint r = (_colors[i].r * rNewMax) / rOrigMax;
const uint g = (_colors[i].g * gNewMax) / gOrigMax;
const uint b = (_colors[i].b * bNewMax) / bOrigMax;
const uint r = (_colors[i].r * rNewMax) / (rOrigMax == 0 ? 1 : rOrigMax);
const uint g = (_colors[i].g * gNewMax) / (gOrigMax == 0 ? 1 : gOrigMax);
const uint b = (_colors[i].b * bNewMax) / (bOrigMax == 0 ? 1 : bOrigMax);
buf[i * format.bytesPerPixel + rBytePos] |= r << (format.rShift % 8);
buf[i * format.bytesPerPixel + gBytePos] |= g << (format.gShift % 8);

View File

@ -29,9 +29,9 @@
namespace Cruise {
Debugger::Debugger(): GUI::Debugger() {
DCmd_Register("continue", WRAP_METHOD(Debugger, Cmd_Exit));
DCmd_Register("hotspots", WRAP_METHOD(Debugger, cmd_hotspots));
DCmd_Register("items", WRAP_METHOD(Debugger, cmd_items));
registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
registerCmd("hotspots", WRAP_METHOD(Debugger, cmd_hotspots));
registerCmd("items", WRAP_METHOD(Debugger, cmd_items));
}
/**
@ -70,7 +70,7 @@ bool Debugger::cmd_hotspots(int argc, const char **argv) {
if (*pObjectName) {
getMultipleObjectParam(currentObject->overlay, currentObject->idx, &params);
DebugPrintf("%s %s - %d,%d\n", pObjectName, pObjType, params.X, params.Y);
debugPrintf("%s %s - %d,%d\n", pObjectName, pObjType, params.X, params.Y);
}
}
@ -96,7 +96,7 @@ bool Debugger::cmd_items(int argc, const char **argv) {
getSingleObjectParam(i, j, 5, &returnVar);
if (returnVar < -1)
DebugPrintf("%s\n", getObjectName(j, pOvlData->arrayNameObj));
debugPrintf("%s\n", getObjectName(j, pOvlData->arrayNameObj));
}
}
}

View File

@ -50,44 +50,46 @@ enum {
};
Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
uint i;
_dialogueLinesNum = 0;
_blockNum = 0;
for (i = 0; i < kDialogueLines; i++)
_dialogueAnims[0] = 0;
for (uint i = 0; i < kDialogueLines; i++)
_dialogueAnims[0] = nullptr;
_loopStatus = kStatusOrdinary;
_loopSubstatus = kOuterLoop;
_shouldQuit = 0;
_shouldExitLoop = 0;
_isReloaded = 0;
_speechTick = 0;
_speechDuration = 0;
_objUnderCursor = 0;
_animUnderCursor = 0;
_markedAnimationIndex = 0;
_scheduledPalette = 0;
_fadePhases = 0;
_fadePhase = 0;
_fadeTick = 0;
_isFadeOut = 1;
_mouseChangeTick = 0;
_enableQuickHero = 0;
_wantQuickHero = 0;
_enableSpeedText = 0;
_titleAnim = 0;
_inventoryAnim = 0;
_walkingMapOverlay = 0;
_walkingShortestPathOverlay = 0;
_walkingObliquePathOverlay = 0;
_currentItem = 0;
_itemUnderCursor = 0;
_previousItemPosition = 0;
for (i = 0; i < kInventorySlots; i++)
_inventory[i] = 0;
_shouldQuit = false;
_shouldExitLoop = false;
_isReloaded = false;
_isPositionLoaded = false;
_isFadeOut = true;
_enableQuickHero = false;
_wantQuickHero = false;
_enableSpeedText = false;
_isPositionLoaded = false;
_objUnderCursor = nullptr;
_animUnderCursor = nullptr;
_titleAnim = nullptr;
_inventoryAnim = nullptr;
_walkingMapOverlay = nullptr;
_walkingShortestPathOverlay = nullptr;
_walkingObliquePathOverlay = nullptr;
_currentItem = nullptr;
_itemUnderCursor = nullptr;
for (int i = 0; i < kInventorySlots; i++)
_inventory[i] = nullptr;
_newRoom = 0;
_newGate = 0;
@ -95,10 +97,10 @@ Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
_pushedNewRoom = 0;
_pushedNewGate = 0;
_currentDialogue = 0;
_dialogueArchive = 0;
_dialogueBlocks = 0;
_dialogueBegin = 0;
_dialogueExit = 0;
_dialogueArchive = nullptr;
_dialogueBlocks = nullptr;
_dialogueBegin = false;
_dialogueExit = false;
_currentBlock = 0;
_lastBlock = 0;
@ -113,7 +115,7 @@ Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
uint numPersons = file->_length / personSize;
_persons = new Person[numPersons];
for (i = 0; i < numPersons; ++i) {
for (uint i = 0; i < numPersons; ++i) {
_persons[i]._x = personData.readUint16LE();
_persons[i]._y = personData.readUint16LE();
_persons[i]._fontColor = personData.readByte();
@ -126,9 +128,9 @@ Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
uint numDialogues = file->_length / sizeof(uint16);
_dialogueOffsets = new uint[numDialogues];
uint curOffset;
for (i = 0, curOffset = 0; i < numDialogues; ++i) {
_dialogueOffsets[i] = curOffset;
uint curOffset, idx;
for (idx = 0, curOffset = 0; idx < numDialogues; ++idx) {
_dialogueOffsets[idx] = curOffset;
curOffset += dialogueData.readUint16LE();
}
@ -163,7 +165,7 @@ Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
_variables = new int[numVariables];
Common::MemoryReadStream variableData(file->_data, file->_length);
for (i = 0; i < numVariables; ++i) {
for (uint i = 0; i < numVariables; ++i) {
_variables[i] = variableData.readUint16LE();
}
@ -181,7 +183,7 @@ Game::Game(DraciEngine *vm) : _vm(vm), _walkingState(vm) {
_objects = new GameObject[numObjects];
Common::MemoryReadStream objStatus(file->_data, file->_length);
for (i = 0; i < numObjects; ++i) {
for (uint i = 0; i < numObjects; ++i) {
byte tmp = objStatus.readByte();
// Set object visibility
@ -251,14 +253,14 @@ void Game::init() {
setLoopStatus(kStatusGate);
setLoopSubstatus(kOuterLoop);
_animUnderCursor = NULL;
_animUnderCursor = nullptr;
_currentItem = _itemUnderCursor = NULL;
_currentItem = _itemUnderCursor = nullptr;
_previousItemPosition = -1;
_vm->_mouse->setCursorType(kHighlightedCursor); // anything different from kNormalCursor
_objUnderCursor = NULL;
_objUnderCursor = nullptr;
// Set the inventory to empty initially
memset(_inventory, 0, kInventorySlots * sizeof(GameItem *));
@ -402,12 +404,12 @@ void Game::handleInventoryLoop() {
// an overlay, for which we check. Item animations have their IDs
// calculated by offseting their itemID from the ID of the last "special"
// animation ID. In this way, we obtain its itemID.
if (_animUnderCursor != NULL && _animUnderCursor != _inventoryAnim && _animUnderCursor->getID() != kOverlayImage) {
if (_animUnderCursor != nullptr && _animUnderCursor != _inventoryAnim && _animUnderCursor->getID() != kOverlayImage) {
_itemUnderCursor = getItem(kInventoryItemsID - _animUnderCursor->getID());
assert(_itemUnderCursor != NULL);
assert(_itemUnderCursor != nullptr);
assert(_itemUnderCursor->_anim == _animUnderCursor);
} else {
_itemUnderCursor = NULL;
_itemUnderCursor = nullptr;
}
// If the user pressed the left mouse button
@ -824,7 +826,7 @@ void Game::removeItem(GameItem *item) {
return;
for (uint i = 0; i < kInventorySlots; ++i) {
if (_inventory[i] == item) {
_inventory[i] = NULL;
_inventory[i] = nullptr;
item->_anim->stop();
break;
}
@ -931,7 +933,7 @@ void Game::inventoryDone() {
_walkingState.callbackLast();
// Reset item under cursor
_itemUnderCursor = NULL;
_itemUnderCursor = nullptr;
// Don't start the inventory mode again if the mouse is on the top.
_mouseChangeTick = kMouseDoNotSwitch;
@ -1640,7 +1642,7 @@ void Game::DoSync(Common::Serializer &s, uint8 saveVersion) {
_currentItem = getItem(handItemID);
}
} else {
_currentItem = 0;
_currentItem = nullptr;
}
}

View File

@ -453,7 +453,7 @@ void WalkingState::callback() {
_callback = NULL;
_vm->_script->runWrapper(originalCallback, _callbackOffset, true, false);
_callbackLast = NULL;
_callbackOffset = NULL;
_callbackOffset = 0;
}
void WalkingState::callbackLast() {

View File

@ -27,7 +27,7 @@
namespace Drascula {
Console::Console(DrasculaEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("room", WRAP_METHOD(Console, Cmd_Room));
registerCmd("room", WRAP_METHOD(Console, Cmd_Room));
}
Console::~Console() {
@ -35,7 +35,7 @@ Console::~Console() {
bool Console::Cmd_Room(int argc, const char **argv) {
if (argc < 2) {
DebugPrintf("Usage: room <number>\n");
debugPrintf("Usage: room <number>\n");
return true;
}

View File

@ -28,14 +28,14 @@
namespace Fullpipe {
Console::Console(FullpipeEngine *vm) : GUI::Debugger(), _vm(vm) {
DCmd_Register("scene", WRAP_METHOD(Console, Cmd_Scene));
registerCmd("scene", WRAP_METHOD(Console, Cmd_Scene));
}
bool Console::Cmd_Scene(int argc, const char **argv) {
if (argc != 2) {
int sceneTag = _vm->_currentScene->_sceneId;
DebugPrintf("Current scene: %d (scene tag: %d)\n", _vm->getSceneFromTag(sceneTag), sceneTag);
DebugPrintf("Use %s <scene> to change the current scene\n", argv[0]);
debugPrintf("Current scene: %d (scene tag: %d)\n", _vm->getSceneFromTag(sceneTag), sceneTag);
debugPrintf("Use %s <scene> to change the current scene\n", argv[0]);
return true;
} else {
int scene = _vm->convertScene(atoi(argv[1]));

View File

@ -26,6 +26,7 @@
#include "common/file.h"
#include "fullpipe/fullpipe.h"
#include "fullpipe/gameloader.h"
namespace Fullpipe {
@ -87,15 +88,72 @@ public:
}
virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 8; }
virtual SaveStateList listSaves(const char *target) const;
virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
};
bool FullpipeMetaEngine::hasFeature(MetaEngineFeature f) const {
return false;
return
(f == kSupportsListSaves) ||
(f == kSupportsDeleteSave) ||
(f == kSavesSupportMetaInfo) ||
(f == kSavesSupportThumbnail) ||
(f == kSavesSupportCreationDate) ||
(f == kSupportsLoadingDuringStartup);
}
bool Fullpipe::FullpipeEngine::hasFeature(EngineFeature f) const {
return false;
SaveStateList FullpipeMetaEngine::listSaves(const char *target) const {
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
Common::StringArray filenames;
Common::String pattern("fullpipe.s??");
filenames = saveFileMan->listSavefiles(pattern);
sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
SaveStateList saveList;
for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
// Obtain the last 2 digits of the filename, since they correspond to the save slot
int slotNum = atoi(file->c_str() + file->size() - 2);
if (slotNum >= 0 && slotNum <= getMaximumSaveSlot()) {
Common::InSaveFile *in = saveFileMan->openForLoading(*file);
if (in) {
Fullpipe::FullpipeSavegameHeader header;
Fullpipe::readSavegameHeader(in, header);
saveList.push_back(SaveStateDescriptor(slotNum, header.saveName));
delete header.thumbnail;
delete in;
}
}
}
return saveList;
}
void FullpipeMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Fullpipe::getSavegameFile(slot));
}
SaveStateDescriptor FullpipeMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(
Fullpipe::getSavegameFile(slot));
if (f) {
Fullpipe::FullpipeSavegameHeader header;
Fullpipe::readSavegameHeader(f, header);
delete f;
// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
desc.setThumbnail(header.thumbnail);
return desc;
}
return SaveStateDescriptor();
}
bool FullpipeMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {

View File

@ -37,6 +37,7 @@
#include "fullpipe/scenes.h"
#include "fullpipe/floaters.h"
#include "fullpipe/console.h"
#include "fullpipe/constants.h"
namespace Fullpipe {
@ -205,7 +206,39 @@ void FullpipeEngine::initialize() {
}
void FullpipeEngine::restartGame() {
warning("STUB: FullpipeEngine::restartGame()");
_floaters->stopAll();
clearGlobalMessageQueueList();
clearMessages();
initObjectStates();
if (_scene2) {
_scene2->getAniMan();
_scene2 = 0;
}
if (_currentScene) {
_gameLoader->unloadScene(_currentScene->_sceneId);
_currentScene = 0;
}
_gameLoader->restoreDefPicAniInfos();
getGameLoaderInventory()->clear();
getGameLoaderInventory()->addItem(ANI_INV_MAP, 1);
getGameLoaderInventory()->rebuildItemRects();
initMap();
if (_flgPlayIntro) {
_gameLoader->loadScene(SC_INTRO1);
_gameLoader->gotoScene(SC_INTRO1, TrubaUp);
} else {
_gameLoader->loadScene(SC_1);
_gameLoader->gotoScene(SC_1, TrubaLeft);
}
}
Common::Error FullpipeEngine::run() {
@ -347,7 +380,7 @@ void FullpipeEngine::updateEvents() {
case Common::EVENT_QUIT:
_gameContinue = false;
break;
case Common::EVENT_RBUTTONDOWN:
case Common::EVENT_RBUTTONDOWN:
if (!_inputArFlag && (_updateTicks - _lastInputTicks) >= 2) {
ex = new ExCommand(0, 17, 107, event.mouse.x, event.mouse.y, 0, 1, 0, 0, 0);
ex->_excFlags |= 3;
@ -477,7 +510,20 @@ void FullpipeEngine::setObjectState(const char *name, int state) {
}
void FullpipeEngine::disableSaves(ExCommand *ex) {
warning("STUB: FullpipeEngine::disableSaves()");
if (_isSaveAllowed) {
_isSaveAllowed = false;
if (_globalMessageQueueList->size() && (*_globalMessageQueueList)[0] != 0) {
for (int i = 0; i < _globalMessageQueueList->size(); i++) {
if ((*_globalMessageQueueList)[i]->_flags & 1)
if ((*_globalMessageQueueList)[i]->_id != ex->_parId && !(*_globalMessageQueueList)[i]->_isFinished)
return;
}
}
if (_currentScene)
_gameLoader->writeSavegame(_currentScene, "savetmp.sav");
}
}

View File

@ -99,7 +99,6 @@ public:
const ADGameDescription *_gameDescription;
const char *getGameId() const;
Common::Platform getPlatform() const;
bool hasFeature(EngineFeature f) const;
Common::RandomSource *_rnd;

View File

@ -21,6 +21,7 @@
*/
#include "fullpipe/fullpipe.h"
#include "graphics/thumbnail.h"
#include "fullpipe/gameloader.h"
#include "fullpipe/scene.h"
@ -501,6 +502,14 @@ void GameLoader::updateSystems(int counterdiff) {
}
}
void GameLoader::readSavegame(const char *fname) {
warning("STUB: readSavegame(%s)", fname);
}
void GameLoader::writeSavegame(Scene *sc, const char *fname) {
warning("STUB: writeSavegame(sc, %s)", fname);
}
Sc2::Sc2() {
_sceneId = 0;
_field_2 = 0;
@ -593,6 +602,42 @@ bool PreloadItems::load(MfcArchive &file) {
return true;
}
const char *getSavegameFile(int saveGameIdx) {
static char buffer[20];
sprintf(buffer, "fullpipe.s%02d", saveGameIdx);
return buffer;
}
bool readSavegameHeader(Common::InSaveFile *in, FullpipeSavegameHeader &header) {
char saveIdentBuffer[6];
header.thumbnail = NULL;
// Validate the header Id
in->read(saveIdentBuffer, 6);
if (strcmp(saveIdentBuffer, "SVMCR"))
return false;
header.version = in->readByte();
if (header.version != FULLPIPE_SAVEGAME_VERSION)
return false;
// Read in the string
header.saveName.clear();
char ch;
while ((ch = (char)in->readByte()) != '\0') header.saveName += ch;
// Get the thumbnail
header.thumbnail = Graphics::loadThumbnail(*in);
if (!header.thumbnail)
return false;
return true;
}
void GameLoader::restoreDefPicAniInfos() {
warning("STUB: restoreDefPicAniInfos()");
}
GameVar *FullpipeEngine::getGameLoaderGameVar() {
if (_gameLoader)
return _gameLoader->_gameVar;

View File

@ -29,6 +29,8 @@
namespace Fullpipe {
#define FULLPIPE_SAVEGAME_VERSION 1
class SceneTag;
class MctlCompound;
class InputController;
@ -72,6 +74,12 @@ class PreloadItems : public Common::Array<PreloadItem *>, public CObject {
virtual bool load(MfcArchive &file);
};
struct FullpipeSavegameHeader {
uint8 version;
Common::String saveName;
Graphics::Surface *thumbnail;
};
class GameLoader : public CObject {
public:
GameLoader();
@ -89,6 +97,11 @@ class GameLoader : public CObject {
void applyPicAniInfos(Scene *sc, PicAniInfo **picAniInfo, int picAniInfoCount);
void saveScenePicAniInfos(int sceneId);
void readSavegame(const char *fname);
void writeSavegame(Scene *sc, const char *fname);
void restoreDefPicAniInfos();
GameProject *_gameProject;
InteractionController *_interactionController;
InputController *_inputController;
@ -108,6 +121,9 @@ class GameLoader : public CObject {
int _preloadEntranceId;
};
const char *getSavegameFile(int saveGameIdx);
bool readSavegameHeader(Common::InSaveFile *in, FullpipeSavegameHeader &header);
Inventory2 *getGameLoaderInventory();
InteractionController *getGameLoaderInteractionController();
MctlCompound *getSc2MctlCompoundBySceneId(int16 sceneId);

View File

@ -145,7 +145,7 @@ void Background::addPictureObject(PictureObject *pct) {
bool inserted = false;
for (uint i = 1; i < _picObjList.size(); i++) {
if (((PictureObject *)_picObjList[i])->_priority <= pct->_priority) {
if (_picObjList[i]->_priority <= pct->_priority) {
_picObjList.insert_at(i, pct);
inserted = true;
break;
@ -192,7 +192,7 @@ bool PictureObject::load(MfcArchive &file, bool bigPicture) {
_picture->load(file);
_pictureObject2List = new PtrList();
_pictureObject2List = new Common::Array<GameObject *>;
int count = file.readUint16LE();
@ -351,7 +351,25 @@ void GameObject::setOXY(int x, int y) {
_oy = y;
}
void GameObject::renumPictures(PtrList *lst) {
void GameObject::renumPictures(Common::Array<StaticANIObject *> *lst) {
int *buf = (int *)calloc(lst->size() + 2, sizeof(int));
for (uint i = 0; i < lst->size(); i++) {
if (_id == ((GameObject *)((*lst)[i]))->_id)
buf[((GameObject *)((*lst)[i]))->_okeyCode] = 1;
}
if (buf[_okeyCode]) {
uint count;
for (count = 1; buf[count] && count < lst->size() + 2; count++)
;
_okeyCode = count;
}
free(buf);
}
void GameObject::renumPictures(Common::Array<PictureObject *> *lst) {
int *buf = (int *)calloc(lst->size() + 2, sizeof(int));
for (uint i = 0; i < lst->size(); i++) {
@ -380,6 +398,7 @@ bool GameObject::getPicAniInfo(PicAniInfo *info) {
info->ox = _ox;
info->oy = _oy;
info->priority = _priority;
warning("Yep %d", _id);
return true;
}

View File

@ -92,7 +92,7 @@ class Picture : public MemoryObject {
virtual bool load(MfcArchive &file);
void setAOIDs();
void init();
virtual void init();
void getDibInfo();
Bitmap *getPixelData();
virtual void draw(int x, int y, int style, int angle);
@ -141,7 +141,8 @@ class GameObject : public CObject {
virtual bool load(MfcArchive &file);
void setOXY(int x, int y);
void renumPictures(PtrList *lst);
void renumPictures(Common::Array<StaticANIObject *> *lst);
void renumPictures(Common::Array<PictureObject *> *lst);
void setFlags(int16 flags) { _flags = flags; }
void clearFlags() { _flags = 0; }
const char *getName() { return _objectName; }
@ -153,7 +154,7 @@ class GameObject : public CObject {
class PictureObject : public GameObject {
public:
Picture *_picture;
PtrList *_pictureObject2List;
Common::Array<GameObject *> *_pictureObject2List;
int _ox2;
int _oy2;
@ -178,7 +179,7 @@ class PictureObject : public GameObject {
class Background : public CObject {
public:
PtrList _picObjList;
Common::Array<PictureObject *> _picObjList;
char *_bgname;
int _x;

View File

@ -392,12 +392,10 @@ int global_messageHandler3(ExCommand *cmd) {
}
return result;
case 29:
if (!g_fp->_currentScene)
return result;
if (g_fp->_gameLoader->_interactionController->_flag24) {
if (g_fp->_gameLoader->_interactionController->_flag24 && g_fp->_currentScene) {
ani = g_fp->_currentScene->getStaticANIObjectAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
ani2 = g_fp->_currentScene->getStaticANIObject1ById(g_fp->_gameLoader->_field_FA, -1);
if (ani) {
if (g_fp->_msgObjectId2 == ani->_id && g_fp->_msgId == ani->_okeyCode) {
cmd->_messageKind = 0;

View File

@ -26,6 +26,7 @@
#include "fullpipe/messages.h"
#include "fullpipe/modal.h"
#include "fullpipe/statics.h"
#include "fullpipe/gameloader.h"
namespace Fullpipe {
@ -394,8 +395,18 @@ void MessageQueue::update() {
}
void MessageQueue::messageQueueCallback1(int par) {
// Autosave
debug(3, "STUB: MessageQueue::messageQueueCallback1()");
if (g_fp->_isSaveAllowed && par == 16) {
if (g_fp->_globalMessageQueueList->size() && (*g_fp->_globalMessageQueueList)[0] != 0) {
for (int i = 0; i < g_fp->_globalMessageQueueList->size(); i++) {
if ((*g_fp->_globalMessageQueueList)[i]->_flags & 1)
if ((*g_fp->_globalMessageQueueList)[i] != this && !(*g_fp->_globalMessageQueueList)[i]->_isFinished)
return;
}
}
if (g_fp->_currentScene)
g_fp->_gameLoader->writeSavegame(g_fp->_currentScene, "savetmp.sav");
}
}
void MessageQueue::addExCommand(ExCommand *ex) {

View File

@ -34,6 +34,8 @@
#include "graphics/palette.h"
#include "video/avi_decoder.h"
#include "engines/savestate.h"
namespace Fullpipe {
ModalIntro::ModalIntro() {
@ -1084,17 +1086,17 @@ void ModalMainMenu::updateSoundVolume(Sound *snd) {
b = 800 - dx;
}
int32 pp = b * a; //(0x51EB851F * b * a) >> 32) >> 8; // TODO FIXME
int32 pp = b * a;
snd->setPanAndVolume(pan + (pp >> 31) + pp, par);
snd->setPanAndVolume(pan + pp / 800, par);
return;
}
int dx = _screct.left - ani->_ox;
if (dx <= 800) {
int32 s = 0x51EB851F * (800 - dx) * (g_fp->_sfxVolume - (-3500)); // TODO FIXME
int32 p = -3500 + (s >> 31) + (s >> 8);
int32 s = (800 - dx) * (g_fp->_sfxVolume - (-3500));
int32 p = -3500 + s / 800;
if (p > g_fp->_sfxVolume)
p = g_fp->_sfxVolume;
@ -1103,8 +1105,6 @@ void ModalMainMenu::updateSoundVolume(Sound *snd) {
} else {
snd->setPanAndVolume(-3500, 0);
}
warning("STUB: ModalMainMenu::updateSoundVolume()");
}
void ModalMainMenu::updateSliderPos() {
@ -1460,6 +1460,8 @@ ModalSaveGame::ModalSaveGame() {
_rect = g_fp->_sceneRect;
_queryDlg = 0;
_mode = 1;
_objtype = kObjTypeModalSaveGame;
}
ModalSaveGame::~ModalSaveGame() {
@ -1591,9 +1593,9 @@ void ModalSaveGame::setup(Scene *sc, int mode) {
fileinfo = new FileInfo;
memset(fileinfo, 0, sizeof(FileInfo));
snprintf(fileinfo->filename, 160, "save%02d.sav", i);
strncpy(fileinfo->filename, getSavegameFile(i), 160);
if (!getFileInfo(fileinfo->filename, fileinfo)) {
if (!getFileInfo(i, fileinfo)) {
fileinfo->empty = true;
w = _emptyD->getDimensions(&point)->x;
} else {
@ -1623,12 +1625,175 @@ char *ModalSaveGame::getSaveName() {
return _files[_queryRes]->filename;
}
bool ModalSaveGame::getFileInfo(char *filename, FileInfo *fileinfo) {
warning("STUB: ModalSaveGame::getFileInfo()");
bool ModalSaveGame::getFileInfo(int slot, FileInfo *fileinfo) {
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(
Fullpipe::getSavegameFile(slot));
if (!f)
return false;
Fullpipe::FullpipeSavegameHeader header;
Fullpipe::readSavegameHeader(f, header);
delete f;
// Create the return descriptor
SaveStateDescriptor desc(slot, header.saveName);
char res[17];
snprintf(res, 17, "%s %s", desc.getSaveDate().c_str(), desc.getSaveTime().c_str());
for (int i = 0; i < 16; i++) {
switch(res[i]) {
case '.':
fileinfo->date[i] = 11;
break;
case ' ':
fileinfo->date[i] = 12;
break;
case ':':
fileinfo->date[i] = 10;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
fileinfo->date[i] = res[i] - '0';
break;
default:
error("Incorrect date format: %s", res);
}
}
return true;
}
void ModalSaveGame::update() {
if (_menuScene)
_menuScene->draw();
_bgr->draw();
if (_queryDlg) {
_queryDlg->update();
return;
}
g_fp->_cursorId = PIC_CSR_DEFAULT;
g_fp->setCursor(g_fp->_cursorId);
Common::Point point;
for (uint i = 0; i < _files.size(); i++) {
if (g_fp->_mouseScreenPos.x < _files[i]->fx1 || g_fp->_mouseScreenPos.x > _files[i]->fx2 ||
g_fp->_mouseScreenPos.y < _files[i]->fy1 || g_fp->_mouseScreenPos.y > _files[i]->fy2 ) {
if (_files[i]->empty) {
_emptyD->setOXY(_files[i]->fx1, _files[i]->fy1);
_emptyD->draw();
} else {
int x = _files[i]->fx1;
for (int j = 0; j < 16; j++) {
_arrayL[_files[i]->date[j]]->setOXY(x + 1, _files[i]->fy1);
_arrayL[_files[i]->date[j]]->draw();
x += _arrayL[_files[i]->date[j]]->getDimensions(&point)->x + 2;
}
}
} else {
if (_files[i]->empty) {
_emptyL->setOXY(_files[i]->fx1, _files[i]->fy1);
_emptyL->draw();
} else {
int x = _files[i]->fx1;
for (int j = 0; j < 16; j++) {
_arrayD[_files[i]->date[j]]->setOXY(x + 1, _files[i]->fy1);
_arrayD[_files[i]->date[j]]->draw();
x += _arrayD[_files[i]->date[j]]->getDimensions(&point)->x + 2;
}
}
}
}
if (_cancelL->isPixelHitAtPos(g_fp->_mouseScreenPos.x, g_fp->_mouseScreenPos.y))
_cancelL->draw();
else if (_okL->isPixelHitAtPos(g_fp->_mouseScreenPos.x, g_fp->_mouseScreenPos.y))
_okL->draw();
}
bool ModalSaveGame::handleMessage(ExCommand *cmd) {
if (_queryDlg)
return _queryDlg->handleMessage(cmd);
if (cmd->_messageNum == 29)
processMouse(cmd->_x, cmd->_y);
else if (cmd->_messageNum == 36)
processKey(cmd->_keyCode);
return false;
}
void ModalSaveGame::processMouse(int x, int y) {
for (uint i = 0; i < _files.size(); i++) {
if (x >= _files[i]->fx1 && x <= _files[i]->fx2 && y >= _files[i]->fy1 && y <= _files[i]->fy2) {
_queryRes = i + 1;
if (_mode) {
if (!_files[i]->empty) {
_queryDlg = new ModalQuery;
_queryDlg->create(_menuScene, 0, PIC_MOV_BGR);
}
}
return;
}
}
if (_cancelL->isPixelHitAtPos(x, y))
_queryRes = 0;
}
void ModalSaveGame::saveload() {
if (_objtype != kObjTypeModalSaveGame)
return;
if (_mode) {
if (getSaveName()) {
bool allowed = true;
for (Common::Array<MessageQueue *>::iterator s = g_fp->_globalMessageQueueList->begin(); s != g_fp->_globalMessageQueueList->end(); ++s) {
if (!(*s)->_isFinished && ((*s)->getFlags() & 1))
allowed = false;
}
if (g_fp->_isSaveAllowed && allowed)
g_fp->_gameLoader->writeSavegame(g_fp->_currentScene, getSaveName());
}
} else {
if (getSaveName()) {
if (_parentObj) {
delete _parentObj;
_parentObj = 0;
}
g_fp->stopAllSoundStreams();
g_fp->stopSoundStream2();
g_fp->_gameLoader->readSavegame(getSaveName());
}
}
}
void FullpipeEngine::openHelp() {
if (!_modalObject) {
ModalHelp *help = new ModalHelp;

View File

@ -32,10 +32,7 @@ class Sound;
struct FileInfo {
char filename[260];
bool empty;
int day;
int month;
int year;
int time;
char date[16];
int fx1;
int fx2;
int fy1;
@ -46,9 +43,10 @@ class BaseModalObject {
public:
BaseModalObject *_parentObj;
ObjType _objtype;
public:
BaseModalObject() : _parentObj(0) {}
BaseModalObject() : _parentObj(0) { _objtype = kObjTypeDefault; }
virtual ~BaseModalObject() {}
@ -256,17 +254,19 @@ public:
virtual ~ModalSaveGame();
virtual bool pollEvent() { return true; }
virtual bool handleMessage(ExCommand *message) { return false; }
virtual bool handleMessage(ExCommand *message);
virtual bool init(int counterdiff);
virtual void update() {}
virtual void saveload() {}
virtual void update();
virtual void saveload();
void processMouse(int x, int y);
void setScene(Scene *sc);
void setup(Scene *sc, int mode);
void processKey(int key);
char *getSaveName();
bool getFileInfo(char *filename, FileInfo *fileinfo);
bool getFileInfo(int slot, FileInfo *fileinfo);
Common::Rect _rect;
int _oldBgX;

View File

@ -125,9 +125,10 @@ void MctlCompound::addObject(StaticANIObject *obj) {
}
int MctlCompound::removeObject(StaticANIObject *obj) {
warning("STUB: MctlCompound::removeObject()");
for (uint i = 0; i < _motionControllers.size(); i++)
_motionControllers[i]->_motionControllerObj->removeObject(obj);
return 0;
return 1;
}
void MctlCompound::initMovGraph2() {
@ -193,7 +194,8 @@ MessageQueue *MctlCompound::method34(StaticANIObject *ani, int sourceX, int sour
if (idx == sourceIdx)
return _motionControllers[idx]->_motionControllerObj->method34(ani, sourceX, sourceY, fuzzyMatch, staticsId);
MctlConnectionPoint *cp = findClosestConnectionPoint(ani->_ox, ani->_oy, idx, sourceX, sourceY, sourceIdx, &sourceIdx);
double dist;
MctlConnectionPoint *cp = findClosestConnectionPoint(ani->_ox, ani->_oy, idx, sourceX, sourceY, sourceIdx, &dist);
if (!cp)
return 0;
@ -261,7 +263,8 @@ MessageQueue *MctlCompound::doWalkTo(StaticANIObject *subj, int xpos, int ypos,
if (match1 == match2)
return _motionControllers[match1]->_motionControllerObj->doWalkTo(subj, xpos, ypos, fuzzyMatch, staticsId);
MctlConnectionPoint *closestP = findClosestConnectionPoint(subj->_ox, subj->_oy, match1, xpos, ypos, match2, &match2);
double dist;
MctlConnectionPoint *closestP = findClosestConnectionPoint(subj->_ox, subj->_oy, match1, xpos, ypos, match2, &dist);
if (!closestP)
return 0;
@ -427,14 +430,75 @@ MessageQueue *MctlLadder::controllerWalkTo(StaticANIObject *ani, int off) {
return doWalkTo(ani, _ladderX + off * _width, _ladderY + off * _height, 1, 0);
}
MctlConnectionPoint *MctlCompound::findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, int *minDistancePtr) {
MctlConnectionPoint *MctlCompound::findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, double *minDistancePtr) {
#if 0
if (destIndex == sourceIndex) {
*minDistancePtr = sqrt((double)((oy - connectionY) * (oy - connectionY) + (ox - connectionX) * (ox - connectionX)));
return 0;
}
v11 = this->_motionControllers.m_pData;
currDistance = 0.0;
v12 = 0;
v13 = (MctlCompoundArrayItem *)*(&v11->vmt + sourceIndex);
minDistance = 1.0e10;
minConnectionPoint = 0;
if (v13->mctlConnectionPointsArray.CObArray.m_nSize > 0) {
do {
v14 = 0;
for (currMctlIndex = 0; v14 < this->_motionControllers.m_nSize; currMctlIndex = v14) {
v15 = this->_motionControllers.m_pData;
v16 = *(MovGraphReact **)(*(&v15->vmt + v14) + offsetof(MctlCompoundArrayItem, movGraphReactObj));
if (v16) {
v17 = *(MctlConnectionPoint **)(*(_DWORD *)(*(&v15->vmt + sourceIndex) + 0x10) + 4 * v12);// MctlCompoundArrayItem.mctlConnectionPointsArray.CObArray.m_pData
LOBYTE(v18) = (*(bool (__thiscall **)(MovGraphReact *, int, int))(v16->CObject.vmt + offsetof(MovGraphReactVmt, pointInRegion)))(v16, v17->_connectionX, v17->_connectionY);
if (v18) {
v14 = currMctlIndex;
v19 = *(MctlConnectionPoint **)(*(_DWORD *)(*(&this->_motionControllers.m_pData->vmt + sourceIndex) + 0x10) + 4 * v12);
v20 = MctlCompound_findClosestConnectionPoint(this, ox, oy, destIndex, v19->_connectionX, v19->_connectionY, currMctlIndex, (int *)&currDistance);
if (currDistance < minDistance) {
minDistance = currDistance;
if (v20)
minConnectionPoint = v20;
else
minConnectionPoint = *(MctlConnectionPoint **)(*(_DWORD *)(*(&this->_motionControllers.m_pData->vmt + sourceIndex) + 0x10) + 4 * v12);
}
} else {
v14 = currMctlIndex;
}
}
++v14;
}
++v12;
} while (v12 < *(_DWORD *)(*(&this->_motionControllers.m_pData->vmt + sourceIndex) + 0x14)); // MctlCompoundArrayItem.mctlConnectionPointsArray.CObArray.m_nSize
}
*minDistancePtr = minDistance;
return minConnectionPoint;
}
#endif
warning("STUB: MctlCompound::findClosestConnectionPoint()");
return 0;
}
void MctlCompound::replaceNodeX(int from, int to) {
warning("STUB: MctlCompound::replaceNodeX()");
for (uint i = 0; i < _motionControllers.size(); i++) {
if (_motionControllers[i]->_motionControllerObj->_objtype == kObjTypeMovGraph) {
MovGraph *gr = (MovGraph *)_motionControllers[i]->_motionControllerObj;
for (ObList::iterator n = gr->_nodes.begin(); n != gr->_nodes.end(); ++n) {
MovGraphNode *node = (MovGraphNode *)*n;
if (node->_x == from)
node->_x = to;
}
gr->calcNodeDistancesAndAngles();
}
}
}
MctlConnectionPoint::MctlConnectionPoint() {
@ -493,15 +557,7 @@ bool MctlCompoundArray::load(MfcArchive &file) {
MovGraphItem::MovGraphItem() {
ani = 0;
field_4 = 0;
field_8 = 0;
field_C = 0;
field_10 = 0;
field_14 = 0;
field_18 = 0;
field_1C = 0;
field_20 = 0;
field_24 = 0;
items = 0;
movitems = 0;
count = 0;
field_30 = 0;
field_34 = 0;
@ -509,16 +565,36 @@ MovGraphItem::MovGraphItem() {
field_3C = 0;
}
void MovGraphItem::free() {
for (uint i = 0; i < movitems->size(); i++) {
(*movitems)[i]->movarr->_movSteps.clear();
delete (*movitems)[i]->movarr;
}
delete movitems;
movitems = 0;
}
int MovGraph_messageHandler(ExCommand *cmd);
int MovGraphCallback(int a1, int a2, int a3) {
warning("STUB: MovgraphCallback");
MovArr *movGraphCallback(StaticANIObject *ani, Common::Array<MovItem *> *items, signed int counter) {
int residx = 0;
int itemidx = 0;
return 0;
while (counter > 1) {
if ((*items)[itemidx]->_mfield_4 > (*items)[itemidx + 1]->_mfield_4)
residx = itemidx;
counter--;
itemidx++;
}
return (*items)[residx]->movarr;
}
MovGraph::MovGraph() {
_callback1 = MovGraphCallback;
_callback1 = movGraphCallback;
_field_44 = 0;
insertMessageHandler(MovGraph_messageHandler, getMessageHandlersCount() - 1, 129);
@ -562,54 +638,482 @@ int MovGraph::removeObject(StaticANIObject *obj) {
}
void MovGraph::freeItems() {
warning("STUB: MovGraph::freeItems()");
}
for (uint i = 0; i < _items.size(); i++) {
_items[i]->free();
int MovGraph::method28() {
warning("STUB: MovGraph::method28()");
_items[i]->movarr._movSteps.clear();
}
_items.clear();
}
Common::Array<MovItem *> *MovGraph::method28(StaticANIObject *ani, int x, int y, int flag1, int *rescount) {
*rescount = 0;
if (_items.size() <= 0)
return 0;
int idx = 0;
while (_items[idx]->ani != ani) {
idx++;
if (idx >= _items.size())
return 0;
}
_items[idx]->free();
calcNodeDistancesAndAngles();
_items[idx]->movarr._movSteps.clear();
Common::Point point;
point.x = ani->_ox;
point.y = ani->_oy;
if (!calcChunk(idx, ani->_ox, ani->_oy, &_items[idx]->movarr, 0))
findClosestLink(idx, &point, &_items[idx]->movarr);
_items[idx]->count = 0;
delete _items[idx]->movitems;
_items[idx]->movitems = 0;
int arrSize;
Common::Array<MovArr *> *movarr = genMovArr(x, y, &arrSize, flag1, 0);
if (movarr) {
for (int i = 0; i < arrSize; i++) {
int sz;
Common::Array<MovItem *> *movitems = calcMovItems(&_items[idx]->movarr, (*movarr)[i], &sz);
if (sz > 0) {
for (uint j = 0; j < sz; j++)
_items[idx]->movitems->push_back(movitems[j]);
delete movitems;
}
}
delete movarr;
}
if (_items[idx]->count) {
*rescount = _items[idx]->count;
return _items[idx]->movitems;
}
return 0;
}
int MovGraph::method2C(StaticANIObject *obj, int x, int y) {
bool MovGraph::method2C(StaticANIObject *obj, int x, int y) {
obj->setOXY(x, y);
return method3C(obj, 1);
}
MessageQueue *MovGraph::method34(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId) {
warning("STUB: MovGraph::method34()");
MessageQueue *MovGraph::method34(StaticANIObject *ani, int xpos, int ypos, int fuzzyMatch, int staticsId) {
if (!ani) {
if (!_items.size())
return 0;
return 0;
ani = _items[0]->ani;
}
if (ABS(ani->_ox - xpos) < 50 && ABS(ani->_oy - ypos) < 50)
return 0;
if (!ani->isIdle())
return 0;
if (ani->_flags & 0x100)
return 0;
int count;
Common::Array<MovItem *> *movitems = method28(ani, xpos, ypos, fuzzyMatch, &count);
if (!movitems)
return 0;
if (ani->_movement) {
Common::Point point;
ani->calcStepLen(&point);
MessageQueue *mq = sub1(ani, ani->_ox - point.x, ani->_oy - point.y, ani->_movement->_staticsObj1->_staticsId, xpos, ypos, 0, fuzzyMatch);
if (!mq || !mq->getExCommandByIndex(0))
return 0;
ExCommand *ex = mq->getExCommandByIndex(0);
if ((ex->_messageKind != 1 && ex->_messageKind != 20) || ex->_messageNum != ani->_movement->_id ||
(ex->_field_14 >= 1 && ex->_field_14 <= ani->_movement->_currDynamicPhaseIndex)) {
mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
ex = new ExCommand(ani->_id, 21, 0, 0, 0, 0, 1, 0, 0, 0);
ex->_keyCode = ani->_okeyCode;
ex->_field_3C = 1;
ex->_field_24 = 0;
mq->addExCommandToEnd(ex);
ex = new ExCommand(ani->_id, 51, 0, xpos, ypos, 0, 1, 0, 0, 0);
ex->_keyCode = ani->_okeyCode;
ex->_field_3C = 1;
ex->_field_24 = 0;
ex->_field_20 = fuzzyMatch;
mq->addExCommandToEnd(ex);
if (mq->chain(0))
return mq;
delete mq;
return 0;
}
int count2;
ani->setSomeDynamicPhaseIndex(ex->_field_14);
method28(ani, xpos, ypos, fuzzyMatch, &count2);
int idx = getItemIndexByStaticAni(ani);
count = _items[idx]->count;
movitems = _items[idx]->movitems;
}
return method50(ani, _callback1(ani, movitems, count), staticsId);
}
int MovGraph::changeCallback() {
warning("STUB: MovGraph::changeCallback()");
return 0;
void MovGraph::changeCallback(MovArr *(*callback1)(StaticANIObject *ani, Common::Array<MovItem *> *items, signed int counter)) {
_callback1 = callback1;
}
int MovGraph::method3C(StaticANIObject *ani, int flag) {
warning("STUB: MovGraph::method3C()");
bool MovGraph::method3C(StaticANIObject *ani, int flag) {
int idx = getItemIndexByStaticAni(ani);
return 0;
if (idx == -1)
return false;
Common::Point point;
MovArr movarr;
point.x = ani->_ox;
point.y = ani->_oy;
findClosestLink(idx, &point, &movarr);
ani->setOXY(point.x, point.y);
if (flag) {
Statics *st;
if (ani->_statics) {
int t = _mgm.refreshOffsets(ani->_id, ani->_statics->_staticsId, movarr._link->_dwordArray2[_field_44]);
if (t > _mgm.refreshOffsets(ani->_id, ani->_statics->_staticsId, movarr._link->_dwordArray2[_field_44 + 1]))
st = ani->getStaticsById(movarr._link->_dwordArray2[_field_44 + 1]);
else
st = ani->getStaticsById(movarr._link->_dwordArray2[_field_44]);
} else {
ani->stopAnim_maybe();
st = ani->getStaticsById(movarr._link->_dwordArray2[_field_44]);
}
ani->_statics = st;
}
return true;
}
int MovGraph::method44() {
warning("STUB: MovGraph::method44()");
bool MovGraph::method44(StaticANIObject *ani, int x, int y) {
int idx = getItemIndexByStaticAni(ani);
MovArr m;
return 0;
if (idx != -1) {
if (x != -1 || y != -1) {
int counter;
Common::Array<MovItem *> *movitem = method28(ani, x, y, 0, &counter);
if (movitem) {
MovArr *movarr = _callback1(ani, movitem, counter);
int cnt = movarr->_movStepCount;
if (cnt > 0) {
if (movarr->_movSteps[cnt - 1]->link->_flags & 0x4000000)
return true;
}
}
} else if (calcChunk(idx, ani->_ox, ani->_oy, &m, 0) && m._link && (m._link->_flags & 0x4000000)) {
return true;
}
}
return false;
}
MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId) {
warning("STUB: MovGraph::doWalkTo()");
PicAniInfo picAniInfo;
int ss;
Common::Array<MovItem *> *movitem = method28(subj, xpos, ypos, fuzzyMatch, &ss);
subj->getPicAniInfo(&picAniInfo);
if (movitem) {
MovArr *goal = _callback1(subj, movitem, ss);
int idx = getItemIndexByStaticAni(subj);
for (int i = 0; i < _items[idx]->count; i++) {
if ((*_items[idx]->movitems)[i]->movarr == goal) {
if (subj->_movement) {
Common::Point point;
subj->calcStepLen(&point);
MessageQueue *mq = sub1(subj, subj->_ox - point.x, subj->_oy - point.y, subj->_movement->_staticsObj1->_staticsId, xpos, ypos, 0, fuzzyMatch);
if (!mq || !mq->getExCommandByIndex(0))
return 0;
ExCommand *ex = mq->getExCommandByIndex(0);
if ((ex->_messageKind != 1 && ex->_messageKind != 20) ||
ex->_messageNum != subj->_movement->_id ||
(ex->_field_14 >= 1 && ex->_field_14 <= subj->_movement->_currDynamicPhaseIndex))
subj->playIdle();
}
}
}
}
movitem = method28(subj, xpos, ypos, fuzzyMatch, &ss);
if (movitem) {
MovArr *goal = _callback1(subj, movitem, ss);
int idx = getItemIndexByStaticAni(subj);
if (_items[idx]->count > 0) {
int arridx = 0;
while ((*_items[idx]->movitems)[arridx]->movarr != goal) {
arridx++;
if (arridx >= _items[idx]->count) {
subj->setPicAniInfo(&picAniInfo);
return 0;
}
}
_items[idx]->movarr._movSteps.clear();
_items[idx]->movarr = *(*_items[idx]->movitems)[arridx]->movarr;
_items[idx]->movarr._movSteps = (*_items[idx]->movitems)[arridx]->movarr->_movSteps;
_items[idx]->movarr._afield_8 = -1;
_items[idx]->movarr._link = 0;
MessageQueue *mq = fillMGMinfo(_items[idx]->ani, &_items[idx]->movarr, staticsId);
if (mq) {
ExCommand *ex = new ExCommand();
ex->_messageKind = 17;
ex->_messageNum = 54;
ex->_parentId = subj->_id;
ex->_field_3C = 1;
mq->addExCommandToEnd(ex);
}
subj->setPicAniInfo(&picAniInfo);
return mq;
}
}
subj->setPicAniInfo(&picAniInfo);
return 0;
}
int MovGraph::method50() {
warning("STUB: MovGraph::method50()");
MessageQueue *MovGraph::sub1(StaticANIObject *ani, int x, int y, int stid, int x1, int y1, int stid2, int flag1) {
PicAniInfo picinfo;
return 0;
ani->getPicAniInfo(&picinfo);
ani->_statics = ani->getStaticsById(stid);
ani->_movement = 0;
ani->setOXY(x, y);
int rescount;
Common::Array<MovItem *> *movitems = method28(ani, x1, y1, flag1, &rescount);
if (!movitems) {
ani->setPicAniInfo(&picinfo);
return 0;
}
MessageQueue *res = 0;
MovArr *goal = _callback1(ani, movitems, rescount);
int idx = getItemIndexByStaticAni(ani);
MovGraphItem *movgitem = _items[idx];
int cnt = movgitem->count;
for (int nidx = 0; nidx < cnt; nidx++) {
if ((*movgitem->movitems)[nidx]->movarr == goal) {
movgitem->movarr._movSteps.clear();
_items[idx]->movarr = *(*movgitem->movitems)[nidx]->movarr;
_items[idx]->movarr._movSteps = (*movgitem->movitems)[nidx]->movarr->_movSteps;
_items[idx]->movarr._afield_8 = -1;
_items[idx]->movarr._link = 0;
res = fillMGMinfo(_items[idx]->ani, &_items[idx]->movarr, stid2);
}
}
ani->setPicAniInfo(&picinfo);
return res;
}
MessageQueue *MovGraph::fillMGMinfo(StaticANIObject *ani, MovArr *movarr, int staticsId) {
if (!movarr->_movStepCount)
return 0;
MessageQueue *mq = 0;
int ox = ani->_ox;
int oy = ani->_oy;
int id1 = 0;
int id2;
for (int i = 0; i < movarr->_movStepCount; i++) {
while (i < movarr->_movStepCount - 1) {
if (movarr->_movSteps[i ]->link->_dwordArray1[movarr->_movSteps[i - 1]->sfield_0 + _field_44] !=
movarr->_movSteps[i + 1]->link->_dwordArray1[movarr->_movSteps[i ]->sfield_0 + _field_44])
break;
i++;
}
MovStep *st = movarr->_movSteps[i];
ani->getMovementById(st->link->_dwordArray1[_field_44 + st->sfield_0]);
if (i == movarr->_movStepCount - 1 && staticsId) {
id2 = staticsId;
} else {
if (i < movarr->_movStepCount - 1)
id2 = ani->getMovementById(movarr->_movSteps[i + 1]->link->_dwordArray1[_field_44 + st->sfield_0])->_staticsObj1->_staticsId;
else
id2 = st->link->_dwordArray2[_field_44 + st->sfield_0];
}
int nx, ny, nd;
if (i == movarr->_movStepCount - 1) {
nx = movarr->_point.x;
ny = movarr->_point.y;
nd = st->link->_movGraphNode1->_distance;
} else {
if (st->sfield_0) {
nx = st->link->_movGraphNode1->_x;
ny = st->link->_movGraphNode1->_y;
nd = st->link->_movGraphNode1->_distance;
} else {
nx = st->link->_movGraphNode2->_x;
ny = st->link->_movGraphNode2->_y;
nd = st->link->_movGraphNode2->_distance;
}
}
MGMInfo mgminfo;
memset(&mgminfo, 0, sizeof(mgminfo));
mgminfo.ani = ani;
mgminfo.staticsId2 = id2;
mgminfo.staticsId1 = id1;
mgminfo.x1 = nx;
mgminfo.x2 = ox;
mgminfo.y2 = oy;
mgminfo.y1 = ny;
mgminfo.field_1C = nd;
mgminfo.movementId = st->link->_dwordArray1[_field_44 + st->sfield_0];
mgminfo.flags = 0xe;
if (mq)
mgminfo.flags |= 0x31;
MessageQueue *newmq = _mgm.genMovement(&mgminfo);
if (mq) {
if (newmq) {
mq->transferExCommands(newmq);
delete newmq;
}
} else {
mq = newmq;
}
ox = nx;
oy = ny;
id1 = id2;
}
return mq;
}
MessageQueue *MovGraph::method50(StaticANIObject *ani, MovArr *movarr, int staticsId) {
if (_items.size() == 0)
return 0;
uint idx;
int movidx;
bool done = false;
for (idx = 0; idx <= _items.size() && !done; idx++) {
if (idx == _items.size())
return 0;
if (_items[idx]->ani == ani) {
if (!_items[idx]->movitems)
return 0;
if (_items[idx]->count < 1)
return 0;
for (movidx = 0; movidx < _items[idx]->count; movidx++) {
if ((*_items[idx]->movitems)[movidx]->movarr == movarr) {
done = true;
break;
}
}
}
}
_items[idx]->movarr._movSteps.clear();
_items[idx]->movarr = *(*_items[idx]->movitems)[movidx]->movarr;
_items[idx]->movarr._movSteps = (*_items[idx]->movitems)[movidx]->movarr->_movSteps;
_items[idx]->movarr._afield_8 = -1;
_items[idx]->movarr._link = 0;
MessageQueue *mq = fillMGMinfo(_items[idx]->ani, &_items[idx]->movarr, 0);
if (!mq)
return 0;
ExCommand *ex = new ExCommand();
ex->_messageKind = 17;
ex->_messageNum = 54;
ex->_parentId = ani->_id;
ex->_field_3C = 1;
mq->addExCommandToEnd(ex);
if (!mq->chain(ani)) {
delete mq;
return 0;
}
return mq;
}
double MovGraph::calcDistance(Common::Point *point, MovGraphLink *link, int fuzzyMatch) {
@ -660,6 +1164,61 @@ void MovGraph::calcNodeDistancesAndAngles() {
}
}
bool MovGraph::findClosestLink(int unusedArg, Common::Point *p, MovArr *movarr) {
MovGraphLink *link = 0;
double mindist = 1.0e20;
int resx = 0, resy = 0;
for (ObList::iterator i = _links.begin(); i != _links.end(); ++i) {
MovGraphLink *lnk = (MovGraphLink *)*i;
if ((lnk->_flags & 0x10000000) && !(lnk->_flags & 0x20000000) ) {
double dx1 = lnk->_movGraphNode1->_x - p->x;
double dy1 = lnk->_movGraphNode1->_y - p->y;
double dx2 = lnk->_movGraphNode2->_x - p->x;
double dy2 = lnk->_movGraphNode2->_y - p->y;
double dx3 = lnk->_movGraphNode2->_x - lnk->_movGraphNode1->_x;
double dy3 = lnk->_movGraphNode2->_y - lnk->_movGraphNode1->_y;
double sq1 = sqrt(dy1 * dy1 + dx1 * dx1);
double sdist = (dy3 * dy1 + dx3 * dx1) / lnk->_distance / sq1;
double ldist = sdist * sq1;
double dist = sqrt(1.0 - sdist * sdist) * sq1;
if (ldist < 0.0) {
ldist = 0.0;
dist = sqrt(dx1 * dx1 + dy1 * dy1);
}
if (ldist > lnk->_distance) {
ldist = lnk->_distance;
dist = sqrt(dx2 * dx2 + dy2 * dy2);
}
if (ldist >= 0.0 && ldist <= lnk->_distance && dist < mindist) {
resx = lnk->_movGraphNode1->_x + (int)(dx3 * ldist / lnk->_distance);
resy = lnk->_movGraphNode1->_y + (int)(dy3 * ldist / lnk->_distance);
mindist = dist;
link = lnk;
}
}
}
if (mindist < 1.0e20) {
if (movarr)
movarr->_link = link;
if (p) {
p->x = resx;
p->y = resy;
}
return true;
}
return false;
}
int MovGraph::getItemIndexByStaticAni(StaticANIObject *ani) {
for (uint i = 0; i < _items.size(); i++)
if (_items[i]->ani == ani)
@ -668,6 +1227,209 @@ int MovGraph::getItemIndexByStaticAni(StaticANIObject *ani) {
return -1;
}
Common::Array<MovArr *> *MovGraph::genMovArr(int x, int y, int *arrSize, int flag1, int flag2) {
if (!_links.size()) {
*arrSize = 0;
return 0;
}
Common::Array<MovArr *> *arr = new Common::Array<MovArr *>;
MovArr *movarr;
for (ObList::iterator i = _links.begin(); i != _links.end(); ++i) {
MovGraphLink *lnk = (MovGraphLink *)*i;
if (flag1) {
Common::Point point(x, y);
double dist = calcDistance(&point, lnk, 0);
if (dist >= 0.0 && dist < 2.0) {
movarr = new MovArr;
movarr->_link = lnk;
movarr->_dist = ((double)(lnk->_movGraphNode1->_y - lnk->_movGraphNode2->_y) * (double)(lnk->_movGraphNode1->_y - point.y) +
(double)(lnk->_movGraphNode2->_x - lnk->_movGraphNode1->_x) * (double)(point.x - lnk->_movGraphNode1->_x)) /
lnk->_distance / lnk->_distance;
movarr->_point = point;
arr->push_back(movarr);
}
} else {
if (lnk->_movGraphReact) {
if (lnk->_movGraphReact->pointInRegion(x, y)) {
if (!(lnk->_flags & 0x10000000) || lnk->_flags & 0x20000000) {
if (!flag2) {
movarr = new MovArr;
movarr->_link = lnk;
movarr->_dist = 0.0;
movarr->_point.x = lnk->_movGraphNode1->_x;
movarr->_point.y = lnk->_movGraphNode1->_y;
arr->push_back(movarr);
movarr = new MovArr;
movarr->_link = lnk;
movarr->_dist = 1.0;
movarr->_point.x = lnk->_movGraphNode1->_x;
movarr->_point.y = lnk->_movGraphNode1->_y;
arr->push_back(movarr);
}
} else {
movarr = new MovArr;
movarr->_link = lnk;
movarr->_dist = ((double)(lnk->_movGraphNode1->_y - lnk->_movGraphNode2->_y) * (double)(lnk->_movGraphNode1->_y - y) +
(double)(lnk->_movGraphNode2->_x - lnk->_movGraphNode1->_x) * (double)(x - lnk->_movGraphNode1->_x)) /
lnk->_distance / lnk->_distance;
movarr->_point.x = x;
movarr->_point.y = y;
calcDistance(&movarr->_point, lnk, 0);
arr->push_back(movarr);
}
}
}
}
}
*arrSize = arr->size();
return arr;
}
void MovGraph::shuffleTree(MovGraphLink *lnk, MovGraphLink *lnk2, Common::Array<MovGraphLink *> &tempObList1, Common::Array<MovGraphLink *> &tempObList2) {
if (lnk == lnk2) {
for (uint i = 0; i < tempObList1.size(); i++)
tempObList2.push_back(tempObList1[i]);
tempObList2.push_back(lnk);
} else {
lnk->_flags |= 0x80000000;
tempObList1.push_back(lnk);
for (ObList::iterator i = _links.begin(); i != _links.end(); ++i) {
MovGraphLink *l = (MovGraphLink *)*i;
if (l->_movGraphNode1 != lnk->_movGraphNode1) {
if (l->_movGraphNode2 != lnk->_movGraphNode1) {
if (l->_movGraphNode1 != lnk->_movGraphNode2 && l->_movGraphNode2 != lnk->_movGraphNode2)
continue;
}
}
if (!(l->_flags & 0xA0000000))
shuffleTree(l, lnk2, tempObList1, tempObList2);
}
lnk->_flags &= 0x7FFFFFFF;
}
}
Common::Array<MovItem *> *MovGraph::calcMovItems(MovArr *movarr1, MovArr *movarr2, int *listCount) {
Common::Array<MovGraphLink *> tempObList1;
Common::Array<MovGraphLink *> tempObList2;
shuffleTree(movarr1->_link, movarr2->_link, tempObList1, tempObList2);
*listCount = 0;
if (!tempObList2.size())
return 0;
*listCount = tempObList2.size();
Common::Array<MovItem *> *res = new Common::Array<MovItem *>;
for (int i = 0; i < *listCount; i++) {
MovItem *r = new MovItem;
genMovItem(r, tempObList2[i], movarr1, movarr2);
delete tempObList2[i];
}
movarr2->_link = movarr1->_link;
return res;
}
void MovGraph::genMovItem(MovItem *movitem, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2) {
warning("STUB: MovGraph::genMovItem()");
}
bool MovGraph::calcChunk(int idx, int x, int y, MovArr *arr, int a6) {
int staticsId;
if (_items[idx]->ani->_statics) {
staticsId = _items[idx]->ani->_statics->_staticsId;
} else {
if (!_items[idx]->ani->_movement->_staticsObj2)
return 0;
staticsId = _items[idx]->ani->_movement->_staticsObj2->_staticsId;
}
int arrSize;
Common::Array<MovArr *> *movarr = genMovArr(x, y, &arrSize, 0, 1);
if (!movarr)
return findClosestLink(idx, 0, arr);
bool res = false;
int idxmin = -1;
int offmin = 100;
for (int i = 0; i < arrSize; i++) {
int off = _mgm.refreshOffsets(_items[idx]->ani->_id, staticsId, (*movarr)[i]->_link->_dwordArray2[_field_44]);
if (off < offmin) {
offmin = off;
idxmin = i;
}
off = _mgm.refreshOffsets(_items[idx]->ani->_id, staticsId, (*movarr)[i]->_link->_dwordArray2[_field_44 + 1]);
if (off < offmin) {
offmin = off;
idxmin = i;
}
}
if (idxmin != -1) {
*arr = *(*movarr)[idxmin];
res = true;
}
delete movarr;
return res;
}
void MovGraph::setEnds(MovStep *step1, MovStep *step2) {
if (step1->link->_movGraphNode1 == step2->link->_movGraphNode2) {
step1->sfield_0 = 1;
step2->sfield_0 = 1;
return;
}
if (step1->link->_movGraphNode1 == step2->link->_movGraphNode1) {
step1->sfield_0 = 1;
step2->sfield_0 = 0;
} else {
step1->sfield_0 = 0;
if (step1->link->_movGraphNode2 != step2->link->_movGraphNode1) {
step2->sfield_0 = 1;
} else {
step2->sfield_0 = 0;
}
}
}
int MovGraph2::getItemIndexByGameObjectId(int objectId) {
for (uint i = 0; i < _items2.size(); i++)
if (_items2[i]->_objectId == objectId)
@ -1089,7 +1851,10 @@ int MovGraph2::removeObject(StaticANIObject *obj) {
}
void MovGraph2::freeItems() {
warning("STUB: MovGraph2::freeItems()");
for (uint i = 0; i < _items2.size(); i++)
delete _items2[i];
_items2.clear();
}
MessageQueue *MovGraph2::method34(StaticANIObject *ani, int xpos, int ypos, int fuzzyMatch, int staticsId) {
@ -1140,6 +1905,8 @@ MessageQueue *MovGraph2::doWalkTo(StaticANIObject *obj, int xpos, int ypos, int
PicAniInfo picAniInfo;
Common::Point point;
debug(0, "MovGraph2::doWalkTo(%d, %d, %d, %d, %d)", obj->_id, xpos, ypos, fuzzyMatch, staticsId);
int idx = getItemIndexByGameObjectId(obj->_id);
if (idx < 0)
@ -2528,7 +3295,10 @@ MovGraphLink::MovGraphLink() {
}
MovGraphLink::~MovGraphLink() {
warning("STUB: MovGraphLink::~MovGraphLink()");
delete _movGraphReact;
_dwordArray1.clear();
_dwordArray2.clear();
}
@ -2764,26 +3534,26 @@ bool MovGraphReact::pointInRegion(int x, int y) {
}
}
int startWalkTo(int objId, int objKey, int x, int y, int a5) {
MctlCompound *mc = getSc2MctlCompoundBySceneId(g_fp->_currentScene->_sceneId);
int startWalkTo(int objId, int objKey, int x, int y, int fuzzyMatch) {
MctlCompound *mc = getCurrSceneSc2MotionController();
if (mc)
return (mc->method34(g_fp->_currentScene->getStaticANIObject1ById(objId, objKey), x, y, a5, 0) != 0);
return (mc->method34(g_fp->_currentScene->getStaticANIObject1ById(objId, objKey), x, y, fuzzyMatch, 0) != 0);
return 0;
}
int doSomeAnimation(int objId, int objKey, int a3) {
bool doSomeAnimation(int objId, int objKey, int a3) {
StaticANIObject *ani = g_fp->_currentScene->getStaticANIObject1ById(objId, objKey);
MctlCompound *cmp = getCurrSceneSc2MotionController();
if (ani && cmp)
return cmp->method3C(ani, a3);
return 0;
return false;
}
int doSomeAnimation2(int objId, int objKey) {
bool doSomeAnimation2(int objId, int objKey) {
return doSomeAnimation(objId, objKey, 0);
}

View File

@ -31,10 +31,12 @@ class MctlConnectionPoint;
class MovGraphLink;
class MessageQueue;
class ExCommand2;
struct MovArr;
struct MovItem;
int startWalkTo(int objId, int objKey, int x, int y, int a5);
int doSomeAnimation(int objId, int objKey, int a3);
int doSomeAnimation2(int objId, int objKey);
bool doSomeAnimation(int objId, int objKey, int a3);
bool doSomeAnimation2(int objId, int objKey);
class MotionController : public CObject {
public:
@ -52,14 +54,14 @@ public:
virtual void addObject(StaticANIObject *obj) {}
virtual int removeObject(StaticANIObject *obj) { return 0; }
virtual void freeItems() {}
virtual int method28() { return 0; }
virtual int method2C(StaticANIObject *obj, int x, int y) { return 0; }
virtual Common::Array<MovItem *> *method28(StaticANIObject *ani, int x, int y, int flag1, int *rescount) { return 0; }
virtual bool method2C(StaticANIObject *obj, int x, int y) { return false; }
virtual int method30() { return 0; }
virtual MessageQueue *method34(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId) { return 0; }
virtual int changeCallback() { return 0; }
virtual int method3C(StaticANIObject *ani, int flag) { return 0; }
virtual void changeCallback(MovArr *(*_callback1)(StaticANIObject *ani, Common::Array<MovItem *> *items, signed int counter)) {}
virtual bool method3C(StaticANIObject *ani, int flag) { return 0; }
virtual int method40() { return 0; }
virtual int method44() { return 0; }
virtual bool method44(StaticANIObject *ani, int x, int y) { return false; }
virtual int method48() { return -1; }
virtual MessageQueue *doWalkTo(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId) { return 0; }
@ -115,7 +117,7 @@ public:
virtual MessageQueue *doWalkTo(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId);
void initMovGraph2();
MctlConnectionPoint *findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, int *minDistancePtr);
MctlConnectionPoint *findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, double *minDistancePtr);
void replaceNodeX(int from, int to);
uint getMotionControllerCount() { return _motionControllers.size(); }
@ -299,18 +301,32 @@ class MovGraphLink : public CObject {
void calcNodeDistanceAndAngle();
};
struct MovStep {
int sfield_0;
MovGraphLink *link;
};
struct MovArr {
Common::Array<MovStep *> _movSteps;
int _movStepCount;
int _afield_8;
MovGraphLink *_link;
double _dist;
Common::Point _point;
};
struct MovItem {
MovArr *movarr;
int _mfield_4;
int _mfield_8;
int _mfield_C;
};
struct MovGraphItem {
StaticANIObject *ani;
int field_4;
int field_8;
int field_C;
int field_10;
int field_14;
int field_18;
int field_1C;
int field_20;
int field_24;
int items;
MovArr movarr;
Common::Array<MovItem *> *movitems;
int count;
int field_30;
int field_34;
@ -318,6 +334,7 @@ struct MovGraphItem {
int field_3C;
MovGraphItem();
void free();
};
class MovGraph : public MotionController {
@ -326,7 +343,7 @@ public:
ObList _links;
int _field_44;
Common::Array<MovGraphItem *> _items;
int (*_callback1)(int, int, int);
MovArr *(*_callback1)(StaticANIObject *ani, Common::Array<MovItem *> *items, signed int counter);
MGM _mgm;
public:
@ -338,19 +355,28 @@ public:
virtual void addObject(StaticANIObject *obj);
virtual int removeObject(StaticANIObject *obj);
virtual void freeItems();
virtual int method28();
virtual int method2C(StaticANIObject *obj, int x, int y);
virtual Common::Array<MovItem *> *method28(StaticANIObject *ani, int x, int y, int flag1, int *rescount);
virtual bool method2C(StaticANIObject *obj, int x, int y);
virtual MessageQueue *method34(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId);
virtual int changeCallback();
virtual int method3C(StaticANIObject *ani, int flag);
virtual int method44();
virtual void changeCallback(MovArr *(*_callback1)(StaticANIObject *ani, Common::Array<MovItem *> *items, signed int counter));
virtual bool method3C(StaticANIObject *ani, int flag);
virtual bool method44(StaticANIObject *ani, int x, int y);
virtual MessageQueue *doWalkTo(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId);
virtual int method50();
virtual MessageQueue *method50(StaticANIObject *ani, MovArr *movarr, int staticsId);
double calcDistance(Common::Point *point, MovGraphLink *link, int fuzzyMatch);
void calcNodeDistancesAndAngles();
bool findClosestLink(int unusedArg, Common::Point *p, MovArr *movarr);
MovGraphNode *calcOffset(int ox, int oy);
int getItemIndexByStaticAni(StaticANIObject *ani);
Common::Array<MovArr *> *genMovArr(int x, int y, int *arrSize, int flag1, int flag2);
void shuffleTree(MovGraphLink *lnk, MovGraphLink *lnk2, Common::Array<MovGraphLink *> &tempObList1, Common::Array<MovGraphLink *> &tempObList2);
Common::Array<MovItem *> *calcMovItems(MovArr *movarr1, MovArr *movarr2, int *listCount);
void genMovItem(MovItem *movitem, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2);
bool calcChunk(int idx, int x, int y, MovArr *arr, int a6);
MessageQueue *sub1(StaticANIObject *ani, int x, int y, int a5, int x1, int y1, int a8, int a9);
MessageQueue *fillMGMinfo(StaticANIObject *ani, MovArr *movarr, int staticsId);
void setEnds(MovStep *step1, MovStep *step2);
};
class Movement;

View File

@ -133,7 +133,27 @@ Scene::Scene() {
}
Scene::~Scene() {
warning("STUB: Scene::~Scene()");
delete _soundList;
delete _shadows;
delete _palette;
// _faObjlist is not used
for (uint i = 0; i < _messageQueueList.size(); i++)
delete _messageQueueList[i];
_messageQueueList.clear();
for (uint i = 0; i < _staticANIObjectList1.size(); i++)
delete _staticANIObjectList1[i];
_staticANIObjectList1.clear();
delete _libHandle;
// delete _field_BC;
free(_sceneName);
}
bool Scene::load(MfcArchive &file) {
@ -249,7 +269,7 @@ bool Scene::load(MfcArchive &file) {
void Scene::initStaticANIObjects() {
for (uint i = 0; i < _staticANIObjectList1.size(); i++)
((StaticANIObject *)_staticANIObjectList1[i])->initMovements();
_staticANIObjectList1[i]->initMovements();
}
void Scene::init() {
@ -262,13 +282,13 @@ void Scene::init() {
((PictureObject *)_picObjList[i])->clearFlags();
for (uint i = 0; i < _staticANIObjectList1.size(); i++)
((StaticANIObject *)_staticANIObjectList1[i])->clearFlags();
_staticANIObjectList1[i]->clearFlags();
if (_staticANIObjectList2.size() != _staticANIObjectList1.size()) {
_staticANIObjectList2.clear();
for (PtrList::iterator s = _staticANIObjectList1.begin(); s != _staticANIObjectList1.end(); ++s)
_staticANIObjectList2.push_back(*s);
for (uint i = 0; i < _staticANIObjectList1.size(); i++)
_staticANIObjectList2.push_back(_staticANIObjectList1[i]);
}
}
@ -281,35 +301,33 @@ StaticANIObject *Scene::getAniMan() {
}
StaticANIObject *Scene::getStaticANIObject1ById(int obj, int a3) {
for (PtrList::iterator s = _staticANIObjectList1.begin(); s != _staticANIObjectList1.end(); ++s) {
StaticANIObject *o = (StaticANIObject *)*s;
if (o->_id == obj && (a3 == -1 || o->_okeyCode == a3))
return o;
for (uint i = 0; i < _staticANIObjectList1.size(); i++) {
if (_staticANIObjectList1[i]->_id == obj && (a3 == -1 || _staticANIObjectList1[i]->_okeyCode == a3))
return _staticANIObjectList1[i];
}
return 0;
}
StaticANIObject *Scene::getStaticANIObject1ByName(char *name, int a3) {
for (uint n = 0; n < _staticANIObjectList1.size(); n++) {
StaticANIObject *o = (StaticANIObject *)_staticANIObjectList1[n];
if (!strcmp(o->_objectName, name) && (a3 == -1 || o->_okeyCode == a3))
return o;
for (uint i = 0; i < _staticANIObjectList1.size(); i++) {
if (!strcmp(_staticANIObjectList1[i]->_objectName, name) && (a3 == -1 || _staticANIObjectList1[i]->_okeyCode == a3))
return _staticANIObjectList1[i];
}
return 0;
}
void Scene::deleteStaticANIObject(StaticANIObject *obj) {
for (uint n = 0; n < _staticANIObjectList1.size(); n++)
if ((StaticANIObject *)_staticANIObjectList1[n] == obj) {
_staticANIObjectList1.remove_at(n);
for (uint i = 0; i < _staticANIObjectList1.size(); i++)
if (_staticANIObjectList1[i] == obj) {
_staticANIObjectList1.remove_at(i);
break;
}
for (uint n = 0; n < _staticANIObjectList2.size(); n++)
if ((StaticANIObject *)_staticANIObjectList2[n] == obj) {
_staticANIObjectList2.remove_at(n);
for (uint i = 0; i < _staticANIObjectList2.size(); i++)
if (_staticANIObjectList2[i] == obj) {
_staticANIObjectList2.remove_at(i);
break;
}
}
@ -335,11 +353,12 @@ void Scene::setPictureObjectsFlag4() {
}
void Scene::stopAllSounds() {
warning("STUB: Scene:stopAllSounds()");
for (int i = 0; i < _soundList->getCount(); i++)
_soundList->getSoundByIndex(i)->stop();
}
PictureObject *Scene::getPictureObjectById(int objId, int flags) {
for (uint i = 0; i < _picObjList.size(); i++) {
for (uint i = 1; i < _picObjList.size(); i++) {
if (((PictureObject *)_picObjList[i])->_id == objId && ((PictureObject *)_picObjList[i])->_okeyCode == flags)
return (PictureObject *)_picObjList[i];
}
@ -369,16 +388,16 @@ void Scene::deletePictureObject(PictureObject *obj) {
MessageQueue *Scene::getMessageQueueById(int messageId) {
for (uint i = 0; i < _messageQueueList.size(); i++)
if (((MessageQueue *)_messageQueueList[i])->_dataId == messageId)
return (MessageQueue *)_messageQueueList[i];
if (_messageQueueList[i]->_dataId == messageId)
return _messageQueueList[i];
return 0;
}
MessageQueue *Scene::getMessageQueueByName(char *name) {
for (uint i = 0; i < _messageQueueList.size(); i++)
if (!strcmp(((MessageQueue *)_messageQueueList[i])->_queueName, name))
return (MessageQueue *)_messageQueueList[i];
if (!strcmp(_messageQueueList[i]->_queueName, name))
return _messageQueueList[i];
return 0;
}
@ -447,15 +466,27 @@ void Scene::initObjectCursors(const char *varname) {
}
bool Scene::compareObjPriority(const void *p1, const void *p2) {
if (((const StaticANIObject *)p1)->_priority > ((const StaticANIObject *)p2)->_priority)
if (((const GameObject *)p1)->_priority > ((const GameObject *)p2)->_priority)
return true;
return false;
}
void Scene::objectList_sortByPriority(PtrList &list, bool skipFirst) {
void Scene::objectList_sortByPriority(Common::Array<StaticANIObject *> &list, bool skipFirst) {
if (skipFirst) {
PtrList::iterator s = list.begin();
Common::Array<StaticANIObject *>::iterator s = list.begin();
++s;
Common::sort(s, list.end(), Scene::compareObjPriority);
} else {
Common::sort(list.begin(), list.end(), Scene::compareObjPriority);
}
}
void Scene::objectList_sortByPriority(Common::Array<PictureObject *> &list, bool skipFirst) {
if (skipFirst) {
Common::Array<PictureObject *>::iterator s = list.begin();
++s;
@ -476,16 +507,15 @@ void Scene::draw() {
objectList_sortByPriority(_staticANIObjectList2);
for (PtrList::iterator s = _staticANIObjectList2.begin(); s != _staticANIObjectList2.end(); ++s) {
((StaticANIObject *)*s)->draw2();
}
for (uint i = 0; i < _staticANIObjectList2.size(); i++)
_staticANIObjectList2[i]->draw2();
int priority = -1;
for (PtrList::iterator s = _staticANIObjectList2.begin(); s != _staticANIObjectList2.end(); ++s) {
drawContent(((StaticANIObject *)*s)->_priority, priority, false);
((StaticANIObject *)*s)->draw();
for (uint i = 0; i < _staticANIObjectList2.size(); i++) {
drawContent(_staticANIObjectList2[i]->_priority, priority, false);
_staticANIObjectList2[i]->draw();
priority = ((StaticANIObject *)*s)->_priority;
priority = _staticANIObjectList2[i]->_priority;
}
drawContent(-1, priority, false);
@ -566,7 +596,7 @@ StaticANIObject *Scene::getStaticANIObjectAtPos(int x, int y) {
StaticANIObject *res = 0;
for (uint i = 0; i < _staticANIObjectList1.size(); i++) {
StaticANIObject *p = (StaticANIObject *)_staticANIObjectList1[i];
StaticANIObject *p = _staticANIObjectList1[i];
int pixel;
if ((p->_field_8 & 0x100) && (p->_flags & 4) &&
@ -612,8 +642,8 @@ int Scene::getPictureObjectIdAtPos(int x, int y) {
void Scene::update(int counterdiff) {
debug(6, "Scene::update(%d)", counterdiff);
for (PtrList::iterator s = _staticANIObjectList2.begin(); s != _staticANIObjectList2.end(); ++s)
((StaticANIObject *)*s)->update(counterdiff);
for (uint i = 0; i < _staticANIObjectList2.size(); i++)
_staticANIObjectList2[i]->update(counterdiff);
}
void Scene::drawContent(int minPri, int maxPri, bool drawBg) {

View File

@ -31,10 +31,10 @@ class MessageQueue;
class Scene : public Background {
public:
PtrList _staticANIObjectList1;
PtrList _staticANIObjectList2;
PtrList _messageQueueList;
PtrList _faObjectList;
Common::Array<StaticANIObject *> _staticANIObjectList1;
Common::Array<StaticANIObject *> _staticANIObjectList2;
Common::Array<MessageQueue *> _messageQueueList;
// PtrList _faObjectList; // not used
Shadows *_shadows;
SoundList *_soundList;
int16 _sceneId;
@ -82,7 +82,8 @@ class Scene : public Background {
private:
static bool compareObjPriority(const void *p1, const void *p2);
void objectList_sortByPriority(PtrList &list, bool skipFirst = false);
void objectList_sortByPriority(Common::Array<StaticANIObject *> &list, bool skipFirst = false);
void objectList_sortByPriority(Common::Array<PictureObject *> &list, bool skipFirst = false);
};
class SceneTag : public CObject {

View File

@ -590,10 +590,8 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
scene->setPictureObjectsFlag4();
for (PtrList::iterator s = scene->_staticANIObjectList1.begin(); s != scene->_staticANIObjectList1.end(); ++s) {
StaticANIObject *o = (StaticANIObject *)*s;
o->setFlags(o->_flags & 0xFE7F);
}
for (uint i = 0; i < scene->_staticANIObjectList1.size(); i++)
scene->_staticANIObjectList1[i]->_flags &= 0xFE7F;
PictureObject *p = accessScene(SC_INV)->getPictureObjectById(PIC_INV_MENU, 0);
p->setFlags(p->_flags & 0xFFFB);
@ -1456,9 +1454,28 @@ void BallChain::init(Ball **ball) {
}
Ball *BallChain::sub04(Ball *ballP, Ball *ballN) {
warning("STUB: BallChain::sub04");
if (!pTail) {
cPlex = (byte *)calloc(cPlexLen, sizeof(Ball));
return pTail;
Ball *runPtr = (Ball *)&cPlex[(cPlexLen - 1) * sizeof(Ball)];
for (int i = 0; i < cPlexLen; i++) {
runPtr->p0 = pTail;
pTail = runPtr;
runPtr -= sizeof(Ball);
}
}
Ball *res = pTail;
pTail = res->p0;
res->p1 = ballP;
res->p0 = ballN;
numBalls++;
res->ani = 0;
return res;
}
void BallChain::removeBall(Ball *ball) {

View File

@ -27,6 +27,8 @@
#include "fullpipe/sound.h"
#include "fullpipe/ngiarchive.h"
#include "fullpipe/messages.h"
#include "fullpipe/statics.h"
#include "common/memstream.h"
#include "audio/audiostream.h"
#include "audio/decoders/vorbis.h"
@ -132,7 +134,75 @@ void Sound::updateVolume() {
}
void Sound::setPanAndVolumeByStaticAni() {
debug(3, "STUB Sound::setPanAndVolumeByStaticAni()");
if (!_objectId)
return;
StaticANIObject *ani = g_fp->_currentScene->getStaticANIObject1ById(_objectId, -1);
if (!ani)
return;
int a, b;
if (ani->_ox >= g_fp->_sceneRect.left) {
int par, pan;
if (ani->_ox <= g_fp->_sceneRect.right) {
int dx;
if (ani->_oy <= g_fp->_sceneRect.bottom) {
if (ani->_oy >= g_fp->_sceneRect.top) {
setPanAndVolume(g_fp->_sfxVolume, 0);
return;
}
dx = g_fp->_sceneRect.top - ani->_oy;
} else {
dx = ani->_oy - g_fp->_sceneRect.bottom;
}
par = 0;
if (dx > 800) {
setPanAndVolume(-3500, 0);
return;
}
pan = -3500;
a = g_fp->_sfxVolume - (-3500);
b = 800 - dx;
} else {
int dx = ani->_ox - g_fp->_sceneRect.right;
if (dx > 800) {
setPanAndVolume(-3500, 0);
return;
}
pan = -3500;
par = dx * (-3500) / -800;
a = g_fp->_sfxVolume - (-3500);
b = 800 - dx;
}
int32 pp = b * a;
setPanAndVolume(pan + pp / 800, par);
return;
}
int dx = g_fp->_sceneRect.left - ani->_ox;
if (dx <= 800) {
int32 s = (800 - dx) * (g_fp->_sfxVolume - (-3500));
int32 p = -3500 + s / 800;
if (p > g_fp->_sfxVolume)
p = g_fp->_sfxVolume;
setPanAndVolume(p, dx * (-3500) / 800);
} else {
setPanAndVolume(-3500, 0);
}
}
void Sound::setPanAndVolume(int vol, int pan) {
@ -298,8 +368,12 @@ void FullpipeEngine::startSoundStream1(char *trackName) {
}
void FullpipeEngine::stopAllSounds() {
// TODO: Differences from stopAllSoundStreams()
_mixer->stopAll();
// _mixer->stopAll();
for (int i = 0; i < _currSoundListCount; i++)
for (int j = 0; j < _currSoundList1[i]->getCount(); j++) {
_currSoundList1[i]->getSoundByIndex(j)->stop();
}
}
void FullpipeEngine::toggleMute() {
@ -447,7 +521,7 @@ void FullpipeEngine::updateSoundVolume() {
void FullpipeEngine::setMusicVolume(int vol) {
_musicVolume = vol;
debug(3, "STUB FullpipeEngine::setMusicVolume()");
g_fp->_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, vol);
}
} // End of namespace Fullpipe

View File

@ -55,9 +55,8 @@ bool FullpipeEngine::loadGam(const char *fname, int scene) {
_inventory->rebuildItemRects();
for (PtrList::iterator p = _inventory->getScene()->_picObjList.begin(); p != _inventory->getScene()->_picObjList.end(); ++p) {
((MemoryObject *)((PictureObject *)*p)->_picture)->load();
}
for (uint i = 0; i < _inventory->getScene()->_picObjList.size(); i++)
((MemoryObject *)_inventory->getScene()->_picObjList[i]->_picture)->load();
// _sceneSwitcher = sceneSwitcher; // substituted with direct call
_gameLoader->_preloadCallback = preloadCallback;

View File

@ -141,7 +141,17 @@ StaticANIObject::StaticANIObject() {
}
StaticANIObject::~StaticANIObject() {
warning("STUB: StaticANIObject::~StaticANIObject()");
for (uint i = 0; i < _staticsList.size(); i++)
delete _staticsList[i];
_staticsList.clear();
for (uint i = 0; i < _movements.size(); i++)
delete _movements[i];
_movements.clear();
g_fp->_mgm->clear();
}
StaticANIObject::StaticANIObject(StaticANIObject *src) : GameObject(src) {
@ -164,22 +174,21 @@ StaticANIObject::StaticANIObject(StaticANIObject *src) : GameObject(src) {
_objtype = kObjTypeStaticANIObject;
for (uint i = 0; i < src->_staticsList.size(); i++)
_staticsList.push_back(new Statics((Statics *)src->_staticsList[i], 0));
_staticsList.push_back(new Statics(src->_staticsList[i], 0));
_movement = 0;
_statics = 0;
for (uint i = 0; i < src->_movements.size(); i++) {
Movement *newmov;
Movement *mov = (Movement *)src->_movements[i];
if (mov->_currMovement) {
if (src->_movements[i]->_currMovement) {
// WORKAROUND: Original uses weird construction here:
// new Movement(getMovementById(src->getMovementIdById(mov->_id)), this);
newmov = new Movement(src->getMovementById(src->getMovementIdById(mov->_id)), this);
newmov->_id = mov->_id;
newmov = new Movement(src->getMovementById(src->getMovementIdById(src->_movements[i]->_id)), this);
newmov->_id = src->_movements[i]->_id;
} else {
newmov = new Movement(mov, 0, -1, this);
newmov = new Movement(src->_movements[i], 0, -1, this);
}
_movements.push_back(newmov);
@ -224,7 +233,7 @@ bool StaticANIObject::load(MfcArchive &file) {
Common::Point pt;
if (count) { // We have movements
((Movement *)_movements[0])->getCurrDynamicPhaseXY(pt);
_movements[0]->getCurrDynamicPhaseXY(pt);
} else {
pt.x = pt.y = 100;
}
@ -392,34 +401,36 @@ bool StaticANIObject::isIdle() {
Statics *StaticANIObject::getStaticsById(int itemId) {
for (uint i = 0; i < _staticsList.size(); i++)
if (((Statics *)_staticsList[i])->_staticsId == itemId)
return (Statics *)_staticsList[i];
if (_staticsList[i]->_staticsId == itemId)
return _staticsList[i];
return 0;
}
Statics *StaticANIObject::getStaticsByName(char *name) {
for (uint i = 0; i < _staticsList.size(); i++)
if (!strcmp(((Statics *)_staticsList[i])->_staticsName, name))
return (Statics *)_staticsList[i];
if (!strcmp(_staticsList[i]->_staticsName, name))
return _staticsList[i];
return 0;
}
Movement *StaticANIObject::getMovementById(int itemId) {
for (uint i = 0; i < _movements.size(); i++)
if (((Movement *)_movements[i])->_id == itemId)
return (Movement *)_movements[i];
if (_movements[i]->_id == itemId)
return _movements[i];
return 0;
}
int StaticANIObject::getMovementIdById(int itemId) {
for (uint i = 0; i < _movements.size(); i++) {
Movement *mov = (Movement *)_movements[i];
Movement *mov = _movements[i];
if (mov->_currMovement) {
if (mov->_id == itemId)
return mov->_id;
if (mov->_currMovement->_id == itemId)
return mov->_id;
}
@ -430,8 +441,8 @@ int StaticANIObject::getMovementIdById(int itemId) {
Movement *StaticANIObject::getMovementByName(char *name) {
for (uint i = 0; i < _movements.size(); i++)
if (!strcmp(((Movement *)_movements[i])->_objectName, name))
return (Movement *)_movements[i];
if (!strcmp(_movements[i]->_objectName, name))
return _movements[i];
return 0;
}
@ -551,12 +562,12 @@ void Movement::draw(bool flipFlag, int angle) {
void StaticANIObject::loadMovementsPixelData() {
for (uint i = 0; i < _movements.size(); i++)
((Movement *)_movements[i])->loadPixelData();
_movements[i]->loadPixelData();
}
void StaticANIObject::freeMovementsPixelData() {
for (uint i = 0; i < _movements.size(); i++)
((Movement *)_movements[i])->freePixelData();
_movements[i]->freePixelData();
}
Statics *StaticANIObject::addReverseStatics(Statics *st) {
@ -665,11 +676,10 @@ MovTable *StaticANIObject::countMovements() {
movTable->movs = (int16 *)calloc(_movements.size(), sizeof(int16));
for (uint i = 0; i < _movements.size(); i++) {
GameObject *obj = (GameObject *)_movements[i];
movTable->movs[i] = 2;
for (GameVar *sub = preloadSubVar->_subVars; sub; sub = sub->_nextVarObj) {
if (scumm_stricmp(obj->getName(), sub->_varName) == 0) {
if (scumm_stricmp(_movements[i]->getName(), sub->_varName) == 0) {
movTable->movs[i] = 1;
break;
}
@ -702,21 +712,21 @@ void StaticANIObject::setSpeed(int speed) {
void StaticANIObject::setAlpha(int alpha) {
for (uint i = 0; i < _movements.size(); i++)
((Movement *)_movements[i])->setAlpha(alpha);
_movements[i]->setAlpha(alpha);
for (uint i = 0; i < _staticsList.size(); i++)
((Statics *)_staticsList[i])->setAlpha(alpha);
_staticsList[i]->setAlpha(alpha);
}
void StaticANIObject::initMovements() {
for (uint i = 0; i < _movements.size(); i++)
((Movement *)_movements[i])->removeFirstPhase();
_movements[i]->removeFirstPhase();
}
void StaticANIObject::preloadMovements(MovTable *mt) {
if ( mt ) {
if (mt) {
for (uint i = 0; i < _movements.size(); i++) {
Movement *mov = (Movement *)_movements[i];
Movement *mov = _movements[i];
if (mt->movs[i] == 1)
mov->loadPixelData();
@ -1177,8 +1187,8 @@ void StaticANIObject::startAnimSteps(int movementId, int messageQueueId, int x,
if (!(_flags & 0x80)) {
if (!_messageQueueId)
for (uint i = 0; i < _movements.size(); i++) {
if (((Movement *)_movements[i])->_id == movementId) {
mov = (Movement *)_movements[i];
if (_movements[i]->_id == movementId) {
mov = _movements[i];
break;
}
}
@ -1266,7 +1276,7 @@ bool StaticANIObject::startAnim(int movementId, int messageQueueId, int dynPhase
if (_flags & 0x80)
return false;
debug(0, "StaticANIObject::startAnim(%d, %d, %d) (%s [%d]) [%d, %d]", movementId, messageQueueId, dynPhaseIdx, transCyrillic((byte *)_objectName), _id, _ox, _oy);
debug(4, "StaticANIObject::startAnim(%d, %d, %d) (%s [%d]) [%d, %d]", movementId, messageQueueId, dynPhaseIdx, transCyrillic((byte *)_objectName), _id, _ox, _oy);
if (_messageQueueId) {
updateGlobalMessageQueue(messageQueueId, _id);
@ -1276,9 +1286,8 @@ bool StaticANIObject::startAnim(int movementId, int messageQueueId, int dynPhase
Movement *mov = 0;
for (uint i = 0; i < _movements.size(); i++) {
if (((Movement *)_movements[i])->_id == movementId) {
mov = (Movement *)_movements[i];
if (_movements[i]->_id == movementId) {
mov = _movements[i];
break;
}
}
@ -1441,6 +1450,19 @@ bool Statics::load(MfcArchive &file) {
return true;
}
void Statics::init() {
Picture::init();
if (_staticsId & 0x4000) {
Bitmap *bmp = _bitmap->reverseImage();
freePixelData();
_bitmap = bmp;
_data = bmp->_pixels;
}
}
Common::Point *Statics::getSomeXY(Common::Point &p) {
p.x = _someX;
p.y = _someY;
@ -1493,7 +1515,17 @@ Movement::Movement() {
}
Movement::~Movement() {
warning("STUB: Movement::~Movement()");
for (uint i = 0; i < _dynamicPhases.size(); i++)
delete _framePosOffsets[i];
if (!_currMovement ) {
if (_updateFlag1)
_dynamicPhases.remove_at(0);
_dynamicPhases.clear();
}
free(_framePosOffsets);
}
Movement::Movement(Movement *src, StaticANIObject *ani) {
@ -1748,11 +1780,11 @@ Common::Point *Movement::calcSomeXY(Common::Point &p, int idx) {
void Movement::setAlpha(int alpha) {
if (_currMovement)
for (uint i = 0; i < _currMovement->_dynamicPhases.size(); i++) {
((DynamicPhase *)_currMovement->_dynamicPhases[i])->setAlpha(alpha);
_currMovement->_dynamicPhases[i]->setAlpha(alpha);
}
else
for (uint i = 0; i < _dynamicPhases.size(); i++) {
((DynamicPhase *)_dynamicPhases[i])->setAlpha(alpha);
_dynamicPhases[i]->setAlpha(alpha);
}
}
@ -1765,9 +1797,9 @@ Common::Point *Movement::getDimensionsOfPhase(Common::Point *p, int phaseIndex)
DynamicPhase *dyn;
if (_currMovement)
dyn = (DynamicPhase *)_currMovement->_dynamicPhases[idx];
dyn = _currMovement->_dynamicPhases[idx];
else
dyn = (DynamicPhase *)_dynamicPhases[idx];
dyn = _dynamicPhases[idx];
Common::Point point;
@ -1816,13 +1848,13 @@ void Movement::updateCurrDynamicPhase() {
return;
if (_currMovement->_dynamicPhases[_currDynamicPhaseIndex])
_currDynamicPhase = (DynamicPhase *)_currMovement->_dynamicPhases[_currDynamicPhaseIndex];
_currDynamicPhase = _currMovement->_dynamicPhases[_currDynamicPhaseIndex];
} else {
if (_dynamicPhases.size() == 0 || (uint)_currDynamicPhaseIndex >= _dynamicPhases.size())
return;
if (_dynamicPhases[_currDynamicPhaseIndex])
_currDynamicPhase = (DynamicPhase *)_dynamicPhases[_currDynamicPhaseIndex];
_currDynamicPhase = _dynamicPhases[_currDynamicPhaseIndex];
}
}
@ -1831,11 +1863,11 @@ int Movement::calcDuration() {
if (_currMovement)
for (uint i = 0; i < _currMovement->_dynamicPhases.size(); i++) {
res += ((DynamicPhase *)_currMovement->_dynamicPhases[i])->_initialCountdown;
res += _currMovement->_dynamicPhases[i]->_initialCountdown;
}
else
for (uint i = 0; i < _dynamicPhases.size(); i++) {
res += ((DynamicPhase *)_dynamicPhases[i])->_initialCountdown;
res += _dynamicPhases[i]->_initialCountdown;
}
return res;
@ -1876,12 +1908,12 @@ DynamicPhase *Movement::getDynamicPhaseByIndex(int idx) {
if (_currMovement->_dynamicPhases.size() == 0 || (uint)idx >= _currMovement->_dynamicPhases.size())
return 0;
return (DynamicPhase *)_currMovement->_dynamicPhases[idx];
return _currMovement->_dynamicPhases[idx];
} else {
if (_dynamicPhases.size() == 0 || (uint)idx >= _dynamicPhases.size())
return 0;
return (DynamicPhase *)_dynamicPhases[idx];
return _dynamicPhases[idx];
}
}
@ -1892,7 +1924,7 @@ void Movement::loadPixelData() {
for (uint i = 0; i < _dynamicPhases.size(); i++) {
if ((Statics *)_dynamicPhases[i] != mov->_staticsObj2 || !(mov->_staticsObj2->_staticsId & 0x4000))
((Statics *)_dynamicPhases[i])->getPixelData();
_dynamicPhases[i]->getPixelData();
}
if (!(mov->_staticsObj1->_staticsId & 0x4000))
@ -1902,7 +1934,7 @@ void Movement::loadPixelData() {
void Movement::freePixelData() {
if (!_currMovement)
for (uint i = 0; i < _dynamicPhases.size(); i++)
((DynamicPhase *)_dynamicPhases[i])->freePixelData();
_dynamicPhases[i]->freePixelData();
if (_staticsObj1)
_staticsObj1->freePixelData();
@ -1934,11 +1966,11 @@ bool Movement::gotoNextFrame(void (*callback1)(int, Common::Point *point, int, i
if (!callback2) {
if (_currMovement) {
if ((uint)_currDynamicPhaseIndex == _currMovement->_dynamicPhases.size() - 1
&& !(((DynamicPhase *)(_currMovement->_dynamicPhases.back()))->_countdown)) {
&& !(_currMovement->_dynamicPhases.back()->_countdown)) {
return false;
}
} else if ((uint)_currDynamicPhaseIndex == _dynamicPhases.size() - 1
&& !(((DynamicPhase *)(_dynamicPhases.back()))->_countdown)) {
&& !(_dynamicPhases.back()->_countdown)) {
return false;
}
}

View File

@ -98,6 +98,7 @@ class Statics : public DynamicPhase {
virtual ~Statics();
virtual bool load(MfcArchive &file);
virtual void init();
Statics *getStaticsById(int itemId);
Common::Point *getSomeXY(Common::Point &p);
@ -121,7 +122,7 @@ class Movement : public GameObject {
int _field_50;
int _counterMax;
int _counter;
PtrList _dynamicPhases;
Common::Array<DynamicPhase *> _dynamicPhases;
int _field_78;
Common::Point **_framePosOffsets;
Movement *_currMovement;
@ -181,8 +182,8 @@ class StaticANIObject : public GameObject {
int _initialCounter;
void (*_callback1)(int, Common::Point *point, int, int);
void (*_callback2)(int *);
PtrList _movements;
PtrList _staticsList;
Common::Array<Movement *> _movements;
Common::Array<Statics *> _staticsList;
StepArray _stepArray;
int16 _field_96;
int _messageQueueId;

View File

@ -68,6 +68,7 @@ enum ObjType {
kObjTypeDefault,
kObjTypeExCommand,
kObjTypeExCommand2,
kObjTypeModalSaveGame,
kObjTypeMovGraph,
kObjTypeMovGraphLink,
kObjTypeMovGraphNode,
@ -148,8 +149,6 @@ class DWordArray : public Common::Array<int32>, public CObject {
virtual bool load(MfcArchive &file);
};
typedef Common::Array<void *> PtrList;
char *genFileName(int superId, int sceneId, const char *ext);
byte *transCyrillic(byte *s);

View File

@ -61,7 +61,7 @@ bool Cheater_Geisha::cheat(GUI::Debugger &console) {
uint32 digit5 = READ_VARO_UINT32(0x778);
if (digit1 && digit2 && digit3 && digit4 && digit5)
console.DebugPrintf("Mastermind solution: %d %d %d %d %d\n",
console.debugPrintf("Mastermind solution: %d %d %d %d %d\n",
digit1, digit2, digit3, digit4, digit5);
return true;

View File

@ -29,14 +29,14 @@
namespace Gob {
GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm), _cheater(0) {
DCmd_Register("varSize", WRAP_METHOD(GobConsole, cmd_varSize));
DCmd_Register("dumpVars", WRAP_METHOD(GobConsole, cmd_dumpVars));
DCmd_Register("var8", WRAP_METHOD(GobConsole, cmd_var8));
DCmd_Register("var16", WRAP_METHOD(GobConsole, cmd_var16));
DCmd_Register("var32", WRAP_METHOD(GobConsole, cmd_var32));
DCmd_Register("varString", WRAP_METHOD(GobConsole, cmd_varString));
DCmd_Register("cheat", WRAP_METHOD(GobConsole, cmd_cheat));
DCmd_Register("listArchives", WRAP_METHOD(GobConsole, cmd_listArchives));
registerCmd("varSize", WRAP_METHOD(GobConsole, cmd_varSize));
registerCmd("dumpVars", WRAP_METHOD(GobConsole, cmd_dumpVars));
registerCmd("var8", WRAP_METHOD(GobConsole, cmd_var8));
registerCmd("var16", WRAP_METHOD(GobConsole, cmd_var16));
registerCmd("var32", WRAP_METHOD(GobConsole, cmd_var32));
registerCmd("varString", WRAP_METHOD(GobConsole, cmd_varString));
registerCmd("cheat", WRAP_METHOD(GobConsole, cmd_cheat));
registerCmd("listArchives", WRAP_METHOD(GobConsole, cmd_listArchives));
}
GobConsole::~GobConsole() {
@ -51,7 +51,7 @@ void GobConsole::unregisterCheater() {
}
bool GobConsole::cmd_varSize(int argc, const char **argv) {
DebugPrintf("Size of the variable space: %d bytes\n", _vm->_inter->_variables->getSize());
debugPrintf("Size of the variable space: %d bytes\n", _vm->_inter->_variables->getSize());
return true;
}
@ -74,14 +74,14 @@ bool GobConsole::cmd_dumpVars(int argc, const char **argv) {
bool GobConsole::cmd_var8(int argc, const char **argv) {
if (argc == 1) {
DebugPrintf("Usage: var8 <var offset> (<value>)\n");
debugPrintf("Usage: var8 <var offset> (<value>)\n");
return true;
}
uint32 varNum = atoi(argv[1]);
if (varNum >= _vm->_inter->_variables->getSize()) {
DebugPrintf("Variable offset out of range\n");
debugPrintf("Variable offset out of range\n");
return true;
}
@ -90,21 +90,21 @@ bool GobConsole::cmd_var8(int argc, const char **argv) {
_vm->_inter->_variables->writeOff8(varNum, varVal);
}
DebugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff8(varNum));
debugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff8(varNum));
return true;
}
bool GobConsole::cmd_var16(int argc, const char **argv) {
if (argc == 1) {
DebugPrintf("Usage: var16 <var offset> (<value>)\n");
debugPrintf("Usage: var16 <var offset> (<value>)\n");
return true;
}
uint32 varNum = atoi(argv[1]);
if ((varNum + 1) >= _vm->_inter->_variables->getSize()) {
DebugPrintf("Variable offset out of range\n");
debugPrintf("Variable offset out of range\n");
return true;
}
@ -113,21 +113,21 @@ bool GobConsole::cmd_var16(int argc, const char **argv) {
_vm->_inter->_variables->writeOff16(varNum, varVal);
}
DebugPrintf("var16_%d = %d\n", varNum, _vm->_inter->_variables->readOff16(varNum));
debugPrintf("var16_%d = %d\n", varNum, _vm->_inter->_variables->readOff16(varNum));
return true;
}
bool GobConsole::cmd_var32(int argc, const char **argv) {
if (argc == 1) {
DebugPrintf("Usage: var32 <var offset> (<value>)\n");
debugPrintf("Usage: var32 <var offset> (<value>)\n");
return true;
}
uint32 varNum = atoi(argv[1]);
if ((varNum + 3) >= _vm->_inter->_variables->getSize()) {
DebugPrintf("Variable offset out of range\n");
debugPrintf("Variable offset out of range\n");
return true;
}
@ -136,21 +136,21 @@ bool GobConsole::cmd_var32(int argc, const char **argv) {
_vm->_inter->_variables->writeOff32(varNum, varVal);
}
DebugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff32(varNum));
debugPrintf("var8_%d = %d\n", varNum, _vm->_inter->_variables->readOff32(varNum));
return true;
}
bool GobConsole::cmd_varString(int argc, const char **argv) {
if (argc == 1) {
DebugPrintf("Usage: varString <var offset> (<value>)\n");
debugPrintf("Usage: varString <var offset> (<value>)\n");
return true;
}
uint32 varNum = atoi(argv[1]);
if (varNum >= _vm->_inter->_variables->getSize()) {
DebugPrintf("Variable offset out of range\n");
debugPrintf("Variable offset out of range\n");
return true;
}
@ -160,7 +160,7 @@ bool GobConsole::cmd_varString(int argc, const char **argv) {
Common::strlcpy(_vm->_inter->_variables->getAddressOffString(varNum), argv[2], maxLength);
}
DebugPrintf("varString_%d = \"%s\"\n", varNum, _vm->_inter->_variables->getAddressOffString(varNum));
debugPrintf("varString_%d = \"%s\"\n", varNum, _vm->_inter->_variables->getAddressOffString(varNum));
return true;
}
@ -177,11 +177,11 @@ bool GobConsole::cmd_listArchives(int argc, const char **argv) {
_vm->_dataIO->getArchiveInfo(info);
DebugPrintf(" Archive | Base | FileCount\n");
DebugPrintf("--------------------------------\n");
debugPrintf(" Archive | Base | FileCount\n");
debugPrintf("--------------------------------\n");
for (Common::Array<ArchiveInfo>::const_iterator it = info.begin(); it != info.end(); ++it)
if (!it->name.empty())
DebugPrintf("%13s | %d | %d\n", it->name.c_str(), it->base, it->fileCount);
debugPrintf("%13s | %d | %d\n", it->name.c_str(), it->base, it->fileCount);
return true;
}

View File

@ -36,16 +36,16 @@ Debugger::Debugger(GroovieEngine *vm) :
_vm(vm), _script(_vm->_script) {
// Register the debugger comands
DCmd_Register("step", WRAP_METHOD(Debugger, cmd_step));
DCmd_Register("go", WRAP_METHOD(Debugger, cmd_go));
DCmd_Register("pc", WRAP_METHOD(Debugger, cmd_pc));
DCmd_Register("fg", WRAP_METHOD(Debugger, cmd_fg));
DCmd_Register("bg", WRAP_METHOD(Debugger, cmd_bg));
DCmd_Register("mem", WRAP_METHOD(Debugger, cmd_mem));
DCmd_Register("load", WRAP_METHOD(Debugger, cmd_loadgame));
DCmd_Register("save", WRAP_METHOD(Debugger, cmd_savegame));
DCmd_Register("playref", WRAP_METHOD(Debugger, cmd_playref));
DCmd_Register("dumppal", WRAP_METHOD(Debugger, cmd_dumppal));
registerCmd("step", WRAP_METHOD(Debugger, cmd_step));
registerCmd("go", WRAP_METHOD(Debugger, cmd_go));
registerCmd("pc", WRAP_METHOD(Debugger, cmd_pc));
registerCmd("fg", WRAP_METHOD(Debugger, cmd_fg));
registerCmd("bg", WRAP_METHOD(Debugger, cmd_bg));
registerCmd("mem", WRAP_METHOD(Debugger, cmd_mem));
registerCmd("load", WRAP_METHOD(Debugger, cmd_loadgame));
registerCmd("save", WRAP_METHOD(Debugger, cmd_savegame));
registerCmd("playref", WRAP_METHOD(Debugger, cmd_playref));
registerCmd("dumppal", WRAP_METHOD(Debugger, cmd_dumppal));
}
Debugger::~Debugger() {
@ -81,7 +81,7 @@ bool Debugger::cmd_pc(int argc, const char **argv) {
int val = getNumber(argv[1]);
_script->_currentInstruction = val;
}
DebugPrintf("pc = 0x%04X (%d)\n", _script->_currentInstruction, _script->_currentInstruction);
debugPrintf("pc = 0x%04X (%d)\n", _script->_currentInstruction, _script->_currentInstruction);
return true;
}
@ -97,9 +97,9 @@ bool Debugger::cmd_mem(int argc, const char **argv) {
// Get
val = _script->_variables[pos];
}
DebugPrintf("mem[0x%04X] = 0x%02X\n", pos, val);
debugPrintf("mem[0x%04X] = 0x%02X\n", pos, val);
} else {
DebugPrintf("Syntax: mem <addr> [<val>]\n");
debugPrintf("Syntax: mem <addr> [<val>]\n");
}
return true;
}
@ -109,7 +109,7 @@ bool Debugger::cmd_loadgame(int argc, const char **argv) {
int slot = getNumber(argv[1]);
_script->loadgame(slot);
} else {
DebugPrintf("Syntax: load <slot>\n");
debugPrintf("Syntax: load <slot>\n");
}
return true;
}
@ -119,7 +119,7 @@ bool Debugger::cmd_savegame(int argc, const char **argv) {
int slot = getNumber(argv[1]);
_script->savegame(slot);
} else {
DebugPrintf("Syntax: save <slot>\n");
debugPrintf("Syntax: save <slot>\n");
}
return true;
}
@ -129,7 +129,7 @@ bool Debugger::cmd_playref(int argc, const char **argv) {
int ref = getNumber(argv[1]);
_script->playvideofromref(ref);
} else {
DebugPrintf("Syntax: playref <videorefnum>\n");
debugPrintf("Syntax: playref <videorefnum>\n");
}
return true;
}
@ -140,7 +140,7 @@ bool Debugger::cmd_dumppal(int argc, const char **argv) {
_vm->_system->getPaletteManager()->grabPalette(palettedump, 0, 256);
for (i = 0; i < 256; i++) {
DebugPrintf("%3d: %3d,%3d,%3d\n", i, palettedump[(i * 3)], palettedump[(i * 3) + 1], palettedump[(i * 3) + 2]);
debugPrintf("%3d: %3d,%3d,%3d\n", i, palettedump[(i * 3)], palettedump[(i * 3) + 1], palettedump[(i * 3) + 2]);
}
return true;
}

View File

@ -38,10 +38,9 @@ namespace Hopkins {
ComputerManager::ComputerManager(HopkinsEngine *vm) {
_vm = vm;
for (int i = 0; i < 50; i++) {
_menuText[i]._actvFl = false;
for (int i = 0; i < ARRAYSIZE(_menuText); i++) {
_menuText[i]._lineSize = 0;
memset(_menuText[i]._line, 0, 90);
memset(_menuText[i]._line, 0, ARRAYSIZE(_menuText[0]._line));
}
Common::fill(&_inputBuf[0], &_inputBuf[200], '\0');
_breakoutSpr = NULL;
@ -346,6 +345,7 @@ static const char _spanishText[] =
* Load Menu data
*/
void ComputerManager::loadMenu() {
debug(9, "ComputerManager::loadMenu()");
char *ptr;
if (_vm->_fileIO->fileExists("COMPUTAN.TXT")) {
ptr = (char *)_vm->_fileIO->loadFile("COMPUTAN.TXT");
@ -353,46 +353,52 @@ void ComputerManager::loadMenu() {
switch (_vm->_globals->_language) {
case LANG_FR:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_frenchText));
strcpy(ptr, _frenchText);
Common::strlcpy(ptr, _frenchText, sizeof(_frenchText));
break;
case LANG_SP:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_spanishText));
strcpy(ptr, _spanishText);
Common::strlcpy(ptr, _spanishText, sizeof(_spanishText));
break;
default:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_englishText));
strcpy(ptr, _englishText);
Common::strlcpy(ptr, _englishText, sizeof(_englishText));
break;
}
}
char *tmpPtr = ptr;
int lineNum = 0;
int strPos;
bool loopCond = false;
do {
if (tmpPtr[0] == '%') {
if (tmpPtr[1] == '%') {
loopCond = true;
break;
}
_menuText[lineNum]._actvFl = 1;
strPos = 0;
while (strPos <= 89) {
const char lineSep = tmpPtr[0];
while (tmpPtr[0] != '\0' && lineNum < ARRAYSIZE(_menuText)) {
if (tmpPtr[0] == '%' && tmpPtr[1] == '%') {
// End of file marker found - Break out of parse loop
break;
}
if (tmpPtr[0] == lineSep) {
int strPos = 0;
while (strPos < ARRAYSIZE(_menuText[0]._line)) {
char curChar = tmpPtr[strPos + 2];
if (curChar == '%' || curChar == 10)
if (curChar == '\0' || curChar == lineSep || curChar == 0x0a) // Line Feed
break;
_menuText[lineNum]._line[strPos++] = curChar;
}
if (strPos <= 89) {
if (strPos < ARRAYSIZE(_menuText[0]._line)) {
_menuText[lineNum]._line[strPos] = 0;
_menuText[lineNum]._lineSize = strPos - 1;
}
++lineNum;
if (strPos != 0) {
debug(9, "_menuText[%d]._line (size: %d): \"%s\"", lineNum, _menuText[lineNum]._lineSize, _menuText[lineNum]._line);
++lineNum;
}
}
++tmpPtr;
} while (!loopCond);
}
_vm->_globals->freeMemory((byte *)ptr);
}

Some files were not shown because too many files have changed in this diff Show More