#include "joystick.h"
#include "cartoons.h"
+#ifdef MSDOS
+extern unsigned char get_ascii(KeySym);
+#endif
+
void DrawHeadline()
{
int x1 = SX+(SXSIZE - strlen(GAMETITLE_STRING) * FONT1_XSIZE) / 2;
if (new_level_nr>leveldir[leveldir_nr].levels-1)
new_level_nr = leveldir[leveldir_nr].levels-1;
- if (old_level_nr==new_level_nr || !DelayReached(&level_delay,15))
+ if (old_level_nr==new_level_nr || !DelayReached(&level_delay,150))
goto out;
level_nr = new_level_nr;
}
j++;
- DrawGraphicExtHiRes(drawto,gc,xstart,ystart+(i-start)*ystep,
- graphic+frame);
+ DrawGraphicExt(drawto, gc, xstart, ystart+(i-start)*ystep, graphic+frame);
i++;
}
- redraw_tiles += 28;
for(i=2;i<16;i++)
- redraw[0][i] = redraw[1][i] = TRUE;
- redraw_mask |= REDRAW_TILES;
+ {
+ MarkTileDirty(0,i);
+ MarkTileDirty(1,i);
+ }
}
void DrawHelpScreenElText(int start)
}
else
{
- if (DelayReached(&hs_delay,GAME_FRAME_DELAY))
+ if (DelayReached(&hs_delay,GAME_FRAME_DELAY * 2))
{
if (helpscreen_state<num_helpscreen_els_pages)
DrawHelpScreenElAction(helpscreen_state*MAX_HELPSCREEN_ELS);
return;
}
+#ifndef MSDOS
if ((key>=XK_A && key<=XK_Z) || (key>=XK_a && key<=XK_z &&
xpos<MAX_NAMELEN-1))
{
ascii = 'A'+(char)(key-XK_A);
if (key>=XK_a && key<=XK_z)
ascii = 'a'+(char)(key-XK_a);
+#else
+ if((ascii = get_ascii(key)) && xpos<MAX_NAMELEN-1)
+ {
+#endif
player.alias_name[xpos] = ascii;
player.alias_name[xpos+1] = 0;
xpos++;
{SETUP_TOONS, "Toons:", {"on", "off"}, {FC_YELLOW,FC_BLUE}},
{SETUP_DIRECT_DRAW, "Buffered gfx:",{"off","on" }, {FC_BLUE,FC_YELLOW}},
{SETUP_SCROLL_DELAY,"Scroll Delay:",{"on", "off"}, {FC_YELLOW,FC_BLUE}},
+ {SETUP_SOFT_SCROLL, "Soft Scroll.:",{"on", "off"}, {FC_YELLOW,FC_BLUE}},
{SETUP_FADING, "Fading:", {"on", "off"}, {FC_YELLOW,FC_BLUE}},
{SETUP_QUICK_DOORS, "Quick Doors:", {"on", "off"}, {FC_YELLOW,FC_BLUE}},
{SETUP_AUTO_RECORD, "Auto-Record:", {"on", "off"}, {FC_YELLOW,FC_BLUE}},
player.setup ^= SETUP_SCROLL_DELAY;
}
else if (y==9)
+ {
+ if (SETUP_SOFT_SCROLL_ON(player.setup))
+ DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
+ else
+ DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
+ player.setup ^= SETUP_SOFT_SCROLL;
+ }
+ else if (y==10)
{
if (SETUP_FADING_ON(player.setup))
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
player.setup ^= SETUP_FADING;
}
- else if (y==10)
+ else if (y==11)
{
if (SETUP_QUICK_DOORS_ON(player.setup))
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
player.setup ^= SETUP_QUICK_DOORS;
}
- else if (y==11)
+ else if (y==12)
{
if (SETUP_AUTO_RECORD_ON(player.setup))
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
player.setup ^= SETUP_AUTO_RECORD;
}
- else if (y==12)
+ else if (y==13)
{
if (SETUP_2ND_JOYSTICK_ON(player.setup))
DrawText(SX+14*32, SY+yy*32,"1st",FS_BIG,FC_YELLOW);
DrawText(SX+14*32, SY+yy*32,"2nd",FS_BIG,FC_YELLOW);
player.setup ^= SETUP_2ND_JOYSTICK;
}
- else if (y==13)
+ else if (y==14)
{
CalibrateJoystick();
redraw = TRUE;
} joy_ctrl;
#endif
+#ifdef MSDOS
+ char joy_nr[4];
+#endif
+
int new_joystick_xleft, new_joystick_xright, new_joystick_xmiddle;
int new_joystick_yupper, new_joystick_ylower, new_joystick_ymiddle;
if (joystick_status==JOYSTICK_OFF)
goto error_out;
+#ifndef MSDOS
ClearWindow();
DrawText(SX+16, SY+7*32, "MOVE JOYSTICK TO",FS_BIG,FC_YELLOW);
DrawText(SX+16, SY+8*32, " THE UPPER LEFT ",FS_BIG,FC_YELLOW);
joystick_status=JOYSTICK_OFF;
goto error_out;
}
- Delay(10000);
+ Delay(10);
}
new_joystick_xleft = joy_ctrl.x;
joystick_status=JOYSTICK_OFF;
goto error_out;
}
- Delay(10000);
+ Delay(10);
}
new_joystick_xright = joy_ctrl.x;
joystick_status=JOYSTICK_OFF;
goto error_out;
}
- Delay(10000);
+ Delay(10);
}
new_joystick_xmiddle = joy_ctrl.x;
while(Joystick() & JOY_BUTTON);
return;
+#endif
error_out:
+#ifdef MSDOS
+ joy_nr[0] = '#';
+ joy_nr[1] = SETUP_2ND_JOYSTICK_ON(player.setup)+49;
+ joy_nr[2] = '\0';
+
+ remove_joystick();
+ ClearWindow();
+ DrawText(SX+32, SY+7*32, "CENTER JOYSTICK",FS_BIG,FC_YELLOW);
+ DrawText(SX+16+7*32, SY+8*32, joy_nr, FS_BIG,FC_YELLOW);
+ DrawText(SX+32, SY+9*32, "AND PRESS A KEY",FS_BIG,FC_YELLOW);
+ BackToFront();
+
+ for(clear_keybuf();!keypressed(););
+ install_joystick(JOY_TYPE_2PADS);
+
+ ClearWindow();
+ DrawText(SX+16, SY+7*32, "MOVE JOYSTICK TO",FS_BIG,FC_YELLOW);
+ DrawText(SX+16, SY+8*32, " THE UPPER LEFT ",FS_BIG,FC_YELLOW);
+ DrawText(SX+32, SY+9*32, "AND PRESS A KEY",FS_BIG,FC_YELLOW);
+ BackToFront();
+
+ for(clear_keybuf();!keypressed(););
+ calibrate_joystick(SETUP_2ND_JOYSTICK_ON(player.setup));
+
+ ClearWindow();
+ DrawText(SX+16, SY+7*32, "MOVE JOYSTICK TO",FS_BIG,FC_YELLOW);
+ DrawText(SX+32, SY+8*32, "THE LOWER RIGHT",FS_BIG,FC_YELLOW);
+ DrawText(SX+32, SY+9*32, "AND PRESS A KEY",FS_BIG,FC_YELLOW);
+ BackToFront();
+
+ for(clear_keybuf();!keypressed(););
+ calibrate_joystick(SETUP_2ND_JOYSTICK_ON(player.setup));
+
+ DrawSetupScreen();
+ return;
+#endif
+
ClearWindow();
DrawText(SX+16, SY+16, "NO JOYSTICK",FS_BIG,FC_YELLOW);
DrawText(SX+16, SY+48, " AVAILABLE ",FS_BIG,FC_YELLOW);
- Delay(3000000);
+ BackToFront();
+ Delay(3000);
DrawSetupScreen();
}
TapeStop();
GameActions();
+
+ BackToFront();
}
void HandleVideoButtons(int mx, int my, int button)