DS: Merge changes from 1.1.0 branch into trunk

svn-id: r48677
This commit is contained in:
Max Horn 2010-04-16 20:49:16 +00:00
parent 17c0c846aa
commit b191acf7cc
2 changed files with 127 additions and 101 deletions

View file

@ -41,6 +41,15 @@ Visit the main ScummVM website <http://www.scummvm.org>
What's New?
------------------------------------------------------------------------
ScummVM DS 1.1.0
* New games are supported in this stable build: Return to Zork, Rodney's
Funscreen, Manhole, Leather Goddess of Phobos 2, Cruise for a Corpse.
ScummVM DS 1.0.0
* No changes!
ScummVM DS 1.0.0 RC1
* Gamma correction feature to improve brightness level of game on the
@ -310,7 +319,7 @@ CANNOT DO THIS.
------------------------------------------------------------------------
I'm glad you asked. Here is a list of the compatible games in version
1.0.0 RC1. Demo versions of the games listed should work too.
1.1.0. Demo versions of the games listed should work too.
Flight of the Amazon Queen, Beneath a Steel Sky, and Lure of the
Temptress have generously been released as freeware by the original
@ -400,6 +409,16 @@ Lure of the Temptress G
Nippon Safes G
Return to Zork I
Leather Goddess of Phobos 2 I
Manhole I
Rodney's Funscreen I
Cruise for a Corpse K
Full Throttle and The Dig can run on the DS using an external RAM pack
plugged into slot-2 (the GBA slot). To do this, download the special
@ -456,7 +475,8 @@ with the DS pen, you can switch the input into one of three modes. Press
left on the D-pad to enable the left mouse button. Press right on the
D-pad to enable the right mouse button. Press up on the D-pad to enable
hover mode. In this mode, you won't click on anything, just hover the
mouse cursor over it. This lets you pick out active objects in the scene.
mouse cursor over it. This lets you pick out active objects in the
scene.
An icon on the top screen will show you which mode you're in.
@ -467,8 +487,8 @@ mode) will click the left or right mouse button.
There is an alternative method of control which doesn't require you to
change modes with the D-pad. Press 'Select' to bring up the DS options,
and choose 'Tap for left click, double tap for right click'. In this
mode, you can quickly tap the screen to left click the mouse, and tap twice
to right click the mouse.
mode, you can quickly tap the screen to left click the mouse, and tap
twice to right click the mouse.
Here is a complete list of controls in right-handed mode (the default
@ -477,8 +497,9 @@ Key Usage
Pad Left Left mouse button
Pad Right Right mouse button
Pad Up Hover mouse (no mouse button)
Pad Down Skip dialogue line (for some Lucasarts games), Show inventory
(for Beneath a Steel Sky), Show active objects (for Simon the Sorceror)
Pad Down Skip dialogue line (for some Lucasarts games),
Show inventory (for Beneath a Steel Sky), Show
active objects (for Simon the Sorceror)
Start Pause/game menu (works in some games)
Select DS Options
B Skip cutscenes
@ -496,8 +517,9 @@ Key Usage
Y Left mouse button
A Right mouse button
X Hover mouse (no mouse button)
B Skip dialogue line (for some Lucasarts games), Show inventory (for
Beneath a Steel Sky), Show active objects (for Simon the Sorceror)
B Skip dialogue line (for some Lucasarts games),
Show inventory (for Beneath a Steel Sky), Show
active objects (for Simon the Sorceror)
Start Pause/game menu (works in some games)
Select DS Options
D-pad down Skip cutscenes
@ -779,11 +801,11 @@ This program was brought to you by caffiene, sugar, and late nights.
------------------------------------------------------------------------
If you have problems getting ScummVM to work on your hardware, please
read the FAQ first. /Please/ don't ask me questions which are
answered in the FAQ, I get many emails about this program each day, and
I can't help the people who really need help if I'm answering the same
question all the time which is already answered on this page. Other than
that, feel free to post on the ScummVM DS forum <http://forums.scummvm.org>
read the FAQ first. /Please/ don't ask me questions which are answered
in the FAQ, I get many emails about this program each day, and I can't
help the people who really need help if I'm answering the same question
all the time which is already answered on this page. Other than that,
feel free to post on the ScummVM DS forum <http://forums.scummvm.org>
for help. Please do your research first though. There is no way of
running this on an out-of-the box DS without extra hardware. Most of
these things are fairly inexpensive though.
@ -819,6 +841,7 @@ libmad support by opening 'backends/platform/ds/arm9/makefile' and
commenting out the line which says USE_MAD = 1.
Then, enter the 'backends/platform/ds' folder and type:
make SCUMM_BUILD=a
The executable nds file will build inside 'backends/platform/ds/arm9/SCUMMVM-A'.
@ -826,6 +849,7 @@ The executable nds file will build inside 'backends/platform/ds/arm9/SCUMMVM-A'.
For other builds, substitute the letters b - g in the above line.
To build everything, type:
make allbuildssafe

View file

@ -349,19 +349,19 @@ gameListType* currentGame = NULL;
// Stylus
#define ABS(x) ((x)>0?(x):-(x))
bool penDown;
bool penHeld;
bool penReleased;
bool penDownLastFrame;
s32 penX, penY;
s32 penDownX, penDownY;
int keysDownSaved;
int keysReleasedSaved;
int keysChangedSaved;
bool penDown = FALSE;
bool penHeld = FALSE;
bool penReleased = FALSE;
bool penDownLastFrame = FALSE;
s32 penX = 0, penY = 0;
s32 penDownX = 0, penDownY = 0;
int keysDownSaved = 0;
int keysReleasedSaved = 0;
int keysChangedSaved = 0;
bool penDownSaved;
bool penReleasedSaved;
int penDownFrames;
bool penDownSaved = FALSE;
bool penReleasedSaved = FALSE;
int penDownFrames = 0;
int touchXOffset = 0;
int touchYOffset = 0;
@ -1403,18 +1403,21 @@ void doButtonSelectMode(OSystem_DS* system)
if (getPenReleased() && (leftButtonDown || rightButtonDown)) {
if (leftButtonDown) {
event.type = Common::EVENT_LBUTTONUP;
} else {
event.type = Common::EVENT_RBUTTONUP;
}
leftButtonDown = false;
event.mouse = Common::Point(getPenX(), getPenY());
system->addEvent(event);
} else if (rightButtonDown) {
event.type = Common::EVENT_RBUTTONUP;
rightButtonDown = false;
event.mouse = Common::Point(getPenX(), getPenY());
system->addEvent(event);
}
}
if ((mouseMode != MOUSE_HOVER) || (!displayModeIs8Bit)) {
if (getPenDown() && (!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) {
if ((mouseMode == MOUSE_LEFT) || (!displayModeIs8Bit)) {
if (mouseMode == MOUSE_LEFT) {
event.type = Common::EVENT_LBUTTONDOWN;
leftButtonDown = true;
} else {
@ -1462,8 +1465,7 @@ void doButtonSelectMode(OSystem_DS* system)
mouseMode = MOUSE_LEFT;
}
if (rightButtonDown)
{
if (rightButtonDown) {
Common::Event event;
event.mouse = Common::Point(getPenX(), getPenY());
event.type = Common::EVENT_RBUTTONUP;
@ -1642,29 +1644,29 @@ void addEventsToQueue() {
}
static int selectHoldCount = 0;
static const int SELECT_HOLD_TIME = 60;
static int selectTimeDown = -1;
static const int SELECT_HOLD_TIME = 1000;
if ((getKeysHeld() & KEY_SELECT)) {
selectHoldCount++;
if (getKeysDown() & KEY_SELECT) {
selectTimeDown = getMillis();
}
if (selectHoldCount == SELECT_HOLD_TIME) {
if (selectTimeDown != -1) {
if (getKeysHeld() & KEY_SELECT) {
if (getMillis() - selectTimeDown >= SELECT_HOLD_TIME) {
// Hold select down for one second - show GMM
g_engine->openMainMenuDialog();
}
} else {
selectHoldCount = 0;
}
if (getKeysReleased() & KEY_SELECT) {
if (selectHoldCount < SELECT_HOLD_TIME) {
if (getMillis() - selectTimeDown < SELECT_HOLD_TIME) {
// Just pressed select - show DS options screen
showOptionsDialog();
}
}
}
}
if (!getIndyFightState() && !((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_X)) {
setKeyboardEnable(!keyboardEnable);
@ -2081,7 +2083,7 @@ void VBlankHandler(void) {
storedMouseX = penX;
storedMouseY = penY;
if (gameScreenSwap) {
if (gameScreenSwap && touchPadStyle) {
setIcon(3, storedMouseX - mouseHotspotX, storedMouseY - mouseHotspotY, 8, 0, true);
setIconMain(3, 0, 0, 0, 0, false);
} else {