Get Mac command keys working, MACINTOSH code cleanup, update Xcode project

This commit is contained in:
kreatordxx 2008-12-07 12:26:43 +00:00
parent 58734beacb
commit f257e48ddc
11 changed files with 164 additions and 22 deletions

View file

@ -1,5 +1,9 @@
D1X-Rebirth Changelog
20081207
--------
arch/include/key.h, arch/sdl/key.c, d1x-rebirth.xcodeproj/project.pbxproj, main/game.c, main/inferno.c, main/inferno.h, main/kconfig.c, main/newdemo.c, main/newmenu.c, main/piggy.c: Get Mac command keys working, update Xcode project
20081201
--------
main/kconfig.c: Restored vertical_thrust_time behaviour combined with slide_on to be inverted - respecting user's wishes

View file

@ -92,6 +92,8 @@ extern char * key_text[256];
#define KEY_ALTED 0x200
#define KEY_CTRLED 0x400
#define KEY_DEBUGGED 0x800
#define KEY_METAED 0x1000
#define KEY_COMMAND KEY_METAED // Mac meta key
#define KEY_0 0x0B
#define KEY_1 0x02
@ -165,6 +167,8 @@ extern char * key_text[256];
#define KEY_LCTRL 0x1D
#define KEY_RCTRL 0x9D
#define KEY_LMETA 0x9E
#define KEY_RMETA 0x9F
#define KEY_F1 0x3B
#define KEY_F2 0x3C

View file

@ -409,8 +409,10 @@ void key_handler(SDL_KeyboardEvent *event, int counter)
keycode |= KEY_ALTED;
if ( keyd_pressed[KEY_LCTRL] || keyd_pressed[KEY_RCTRL])
keycode |= KEY_CTRLED;
if ( keyd_pressed[KEY_DELETE] )
keycode |= KEY_DEBUGGED;
if ( keyd_pressed[KEY_DELETE] )
keycode |= KEY_DEBUGGED;
if ( keyd_pressed[KEY_LMETA] || keyd_pressed[KEY_RMETA])
keycode |= KEY_METAED;
temp = key_data.keytail+1;
if ( temp >= KEY_BUFFER_SIZE ) temp=0;
if (temp!=key_data.keyhead) {

View file

@ -28,7 +28,6 @@
676AC1C80668A938007173EB /* rle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CE500668852C00056A5A /* rle.h */; };
676AC1CA0668A938007173EB /* u_dpmi.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF090668878F00056A5A /* u_dpmi.h */; };
676AC1CB0668A938007173EB /* cfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF20066887CE00056A5A /* cfile.h */; };
676AC1CD0668A938007173EB /* ibitblt.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF35066887FE00056A5A /* ibitblt.h */; };
676AC1CE0668A938007173EB /* fix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF420668881F00056A5A /* fix.h */; };
676AC1CF0668A938007173EB /* palette.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF4E0668883900056A5A /* palette.h */; };
676AC1D00668A938007173EB /* pcx.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF620668885500056A5A /* pcx.h */; };
@ -50,7 +49,6 @@
676AC1F20668A938007173EB /* disc.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44141066878B300DF26D8 /* disc.c */; };
676AC1F30668A938007173EB /* font.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44142066878B300DF26D8 /* font.c */; };
676AC1F40668A938007173EB /* gpixel.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44143066878B300DF26D8 /* gpixel.c */; };
676AC1F50668A938007173EB /* ibitblt.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44144066878B300DF26D8 /* ibitblt.c */; };
676AC1F60668A938007173EB /* line.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44145066878B300DF26D8 /* line.c */; };
676AC1F70668A938007173EB /* palette.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44148066878B300DF26D8 /* palette.c */; };
676AC1F80668A938007173EB /* pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44149066878B300DF26D8 /* pcx.c */; };
@ -152,7 +150,6 @@
676AC2800668A939007173EB /* fix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF420668881F00056A5A /* fix.h */; };
676AC2810668A939007173EB /* gr.h in Headers */ = {isa = PBXBuildFile; fileRef = 67B44914066880C400DF26D8 /* gr.h */; };
676AC2820668A939007173EB /* grdef.h in Headers */ = {isa = PBXBuildFile; fileRef = 67B44915066880C400DF26D8 /* grdef.h */; };
676AC2840668A939007173EB /* ibitblt.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF35066887FE00056A5A /* ibitblt.h */; };
676AC2850668A939007173EB /* iff.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791D0BD06688AE800056A5A /* iff.h */; };
676AC2890668A939007173EB /* maths.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791D08F06688A9C00056A5A /* maths.h */; };
676AC28C0668A939007173EB /* pcx.h in Headers */ = {isa = PBXBuildFile; fileRef = 6791CF620668885500056A5A /* pcx.h */; };
@ -174,7 +171,6 @@
676AC2A20668A939007173EB /* disc.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44141066878B300DF26D8 /* disc.c */; };
676AC2A30668A939007173EB /* font.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44142066878B300DF26D8 /* font.c */; };
676AC2A40668A939007173EB /* gpixel.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44143066878B300DF26D8 /* gpixel.c */; };
676AC2A50668A939007173EB /* ibitblt.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44144066878B300DF26D8 /* ibitblt.c */; };
676AC2A60668A939007173EB /* line.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44145066878B300DF26D8 /* line.c */; };
676AC2A70668A939007173EB /* palette.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44148066878B300DF26D8 /* palette.c */; };
676AC2A80668A939007173EB /* pcx.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B44149066878B300DF26D8 /* pcx.c */; };
@ -271,6 +267,8 @@
67F6FED3066B13B400443922 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 67F6FED1066B13B400443922 /* SDLMain.m */; };
67F6FED4066B13B400443922 /* SDLMain.h in Headers */ = {isa = PBXBuildFile; fileRef = 67F6FED0066B13B400443922 /* SDLMain.h */; };
67F6FED5066B13B400443922 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 67F6FED1066B13B400443922 /* SDLMain.m */; };
EB28D99C0ECEABD700E68E9B /* init.c in Sources */ = {isa = PBXBuildFile; fileRef = EB28D99B0ECEABD700E68E9B /* init.c */; };
EB28D99D0ECEABD700E68E9B /* init.c in Sources */ = {isa = PBXBuildFile; fileRef = EB28D99B0ECEABD700E68E9B /* init.c */; };
EB3319850D50A6B200C799B0 /* bmread.c in Sources */ = {isa = PBXBuildFile; fileRef = EBC652010890D632004FCAA3 /* bmread.c */; };
EB33198F0D50A70600C799B0 /* snddecom.c in Sources */ = {isa = PBXBuildFile; fileRef = EBEEB2680D2B364300FF39B4 /* snddecom.c */; };
EB3319FD0D5335E600C799B0 /* netdrv_udp.c in Sources */ = {isa = PBXBuildFile; fileRef = EB3319FB0D5335E500C799B0 /* netdrv_udp.c */; };
@ -374,7 +372,6 @@
6791CE500668852C00056A5A /* rle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rle.h; sourceTree = "<group>"; };
6791CF090668878F00056A5A /* u_dpmi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = u_dpmi.h; sourceTree = "<group>"; };
6791CF20066887CE00056A5A /* cfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cfile.h; sourceTree = "<group>"; };
6791CF35066887FE00056A5A /* ibitblt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ibitblt.h; sourceTree = "<group>"; };
6791CF420668881F00056A5A /* fix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fix.h; sourceTree = "<group>"; };
6791CF4E0668883900056A5A /* palette.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = palette.h; sourceTree = "<group>"; };
6791CF620668885500056A5A /* pcx.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pcx.h; sourceTree = "<group>"; };
@ -396,7 +393,6 @@
67B44141066878B300DF26D8 /* disc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = disc.c; sourceTree = "<group>"; };
67B44142066878B300DF26D8 /* font.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = font.c; sourceTree = "<group>"; };
67B44143066878B300DF26D8 /* gpixel.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = gpixel.c; sourceTree = "<group>"; };
67B44144066878B300DF26D8 /* ibitblt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ibitblt.c; sourceTree = "<group>"; };
67B44145066878B300DF26D8 /* line.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = line.c; sourceTree = "<group>"; };
67B44148066878B300DF26D8 /* palette.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = palette.c; sourceTree = "<group>"; };
67B44149066878B300DF26D8 /* pcx.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = pcx.c; sourceTree = "<group>"; };
@ -564,6 +560,7 @@
EB0421050A341042002CC961 /* controls.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = controls.h; sourceTree = "<group>"; };
EB0421060A341042002CC961 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
EB1283BE0D59D94800A991A3 /* d1x.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = d1x.app; sourceTree = BUILT_PRODUCTS_DIR; };
EB28D99B0ECEABD700E68E9B /* init.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = init.c; sourceTree = "<group>"; };
EB3319E70D53341900C799B0 /* digi_audio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = digi_audio.h; sourceTree = "<group>"; };
EB3319E80D53341900C799B0 /* digi_mixer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = digi_mixer.h; sourceTree = "<group>"; };
EB3319E90D53341900C799B0 /* digi_mixer_music.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = digi_mixer_music.h; sourceTree = "<group>"; };
@ -881,7 +878,6 @@
67B44141066878B300DF26D8 /* disc.c */,
67B44142066878B300DF26D8 /* font.c */,
67B44143066878B300DF26D8 /* gpixel.c */,
67B44144066878B300DF26D8 /* ibitblt.c */,
67B44145066878B300DF26D8 /* line.c */,
EBEEB0AC0D2A2AEE00FF39B4 /* linear.h */,
67B44148066878B300DF26D8 /* palette.c */,
@ -938,6 +934,7 @@
67B441D306687A0200DF26D8 /* digi.c */,
67B441D406687A0200DF26D8 /* event.c */,
67B441D506687A0200DF26D8 /* gr.c */,
EB28D99B0ECEABD700E68E9B /* init.c */,
67B441D706687A0200DF26D8 /* joy.c */,
EB92BE5F0CDD693C0045A32C /* jukebox.c */,
67B441D906687A0200DF26D8 /* key.c */,
@ -1190,7 +1187,6 @@
67B44914066880C400DF26D8 /* gr.h */,
67B44915066880C400DF26D8 /* grdef.h */,
EB92BE690CDD69830045A32C /* hmp2mid.h */,
6791CF35066887FE00056A5A /* ibitblt.h */,
6791D0BD06688AE800056A5A /* iff.h */,
EBAC994E0D4250320017D4BC /* ignorecase.h */,
EB3319F00D5334B600C799B0 /* internal.h */,
@ -1421,7 +1417,6 @@
676AC1C80668A938007173EB /* rle.h in Headers */,
676AC1CA0668A938007173EB /* u_dpmi.h in Headers */,
676AC1CB0668A938007173EB /* cfile.h in Headers */,
676AC1CD0668A938007173EB /* ibitblt.h in Headers */,
676AC1CE0668A938007173EB /* fix.h in Headers */,
676AC1CF0668A938007173EB /* palette.h in Headers */,
676AC1D00668A938007173EB /* pcx.h in Headers */,
@ -1467,7 +1462,6 @@
676AC2800668A939007173EB /* fix.h in Headers */,
676AC2810668A939007173EB /* gr.h in Headers */,
676AC2820668A939007173EB /* grdef.h in Headers */,
676AC2840668A939007173EB /* ibitblt.h in Headers */,
676AC2850668A939007173EB /* iff.h in Headers */,
676AC2890668A939007173EB /* maths.h in Headers */,
676AC28C0668A939007173EB /* pcx.h in Headers */,
@ -1594,7 +1588,6 @@
676AC1F20668A938007173EB /* disc.c in Sources */,
676AC1F30668A938007173EB /* font.c in Sources */,
676AC1F40668A938007173EB /* gpixel.c in Sources */,
676AC1F50668A938007173EB /* ibitblt.c in Sources */,
676AC1F60668A938007173EB /* line.c in Sources */,
676AC1F70668A938007173EB /* palette.c in Sources */,
676AC1F80668A938007173EB /* pcx.c in Sources */,
@ -1713,6 +1706,7 @@
EBCE794D0DE59565008D8F82 /* rbaudio.c in Sources */,
EBFD39730E3C1B6A00FED206 /* tracker_client.c in Sources */,
EB3CA5040E97749400FB1E93 /* tracker_server.c in Sources */,
EB28D99D0ECEABD700E68E9B /* init.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1730,7 +1724,6 @@
676AC2A20668A939007173EB /* disc.c in Sources */,
676AC2A30668A939007173EB /* font.c in Sources */,
676AC2A40668A939007173EB /* gpixel.c in Sources */,
676AC2A50668A939007173EB /* ibitblt.c in Sources */,
676AC2A60668A939007173EB /* line.c in Sources */,
676AC2A70668A939007173EB /* palette.c in Sources */,
676AC2A80668A939007173EB /* pcx.c in Sources */,
@ -1847,6 +1840,7 @@
EB3319FF0D5335E600C799B0 /* netdrv_udp.c in Sources */,
EBCE794E0DE59565008D8F82 /* rbaudio.c in Sources */,
EBFD39720E3C1B6A00FED206 /* tracker_client.c in Sources */,
EB28D99C0ECEABD700E68E9B /* init.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View file

@ -99,7 +99,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define SHOW_EXIT_PATH 1
#define key_isfunc(k) (((k&0xff)>=KEY_F1 && (k&0xff)<=KEY_F10) || (k&0xff)==KEY_F11 || (k&0xff)==KEY_F12)
#define key_ismod(k) ((k&0xff)==KEY_LALT || (k&0xff)==KEY_RALT || (k&0xff)==KEY_LSHIFT || (k&0xff)==KEY_RSHIFT || (k&0xff)==KEY_LCTRL || (k&0xff)==KEY_RCTRL)
#define key_ismod(k) ((k&0xff)==KEY_LALT || (k&0xff)==KEY_RALT || (k&0xff)==KEY_LSHIFT || (k&0xff)==KEY_RSHIFT || (k&0xff)==KEY_LCTRL || (k&0xff)==KEY_RCTRL || (k&0xff)==KEY_LMETA || (k&0xff)==KEY_RMETA)
#ifdef EDITOR
#include "editor/editor.h"
@ -1343,22 +1343,36 @@ int do_game_pause()
void show_help()
{
int nitems = 0;
newmenu_item m[26];
newmenu_item m[28];
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_ESC;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "SHIFT-ESC\t SHOW GAME LOG";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F2;
#if !(defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3\t SAVE/LOAD GAME";
#else
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3 (\x85-s/o)\t SAVE/LOAD GAME";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F3\t SWITCH COCKPIT MODES";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F5;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ALT-F7\t SWITCH HUD MODES";
#if !(defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_PAUSE;
#else
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Pause (\x85-P)\t Pause";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_PRTSCN;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_1TO5;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_6TO10;
#if !(defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-Shift-F9\t Eject Audio CD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-Shift-F10\t Play/Pause " EXT_MUSIC_TEXT;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-Shift-F11/F12\t Previous/Next Song";
#else
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "\x85-E\t Eject Audio CD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "\x85-Up/Down\t Play/Pause " EXT_MUSIC_TEXT;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "\x85-Left/Right\t Previous/Next Song";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "MULTIPLAYER:";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ALT-F4\t SHOW RETICLE NAMES";
@ -1366,12 +1380,16 @@ void show_help()
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F8\t SEND MESSAGE";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(SHIFT-)F8 to F12\t (DEFINE)SEND MACRO";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "PAUSE\t SHOW NETGAME INFORMATION";
#if (defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)";
#endif
newmenu_dotiny( NULL, TXT_KEYS, nitems, m, NULL );
}
void show_newdemo_help()
{
newmenu_item m[12];
newmenu_item m[14];
int mc = 0;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "ESC\t QUIT DEMO PLAYBACK"; mc++;
@ -1386,6 +1404,10 @@ void show_newdemo_help()
m[mc].type = NM_TYPE_TEXT; m[mc].text = "SHIFT-LEFT\t FAST BACKWARD"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "CTRL-RIGHT\t JUMP TO END"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "CTRL-LEFT\t JUMP TO START"; mc++;
#if (defined(__APPLE__) || defined(macintosh))
m[mc].type = NM_TYPE_TEXT; m[mc].text = ""; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)"; mc++;
#endif
newmenu_dotiny( NULL, "DEMO PLAYBACK CONTROLS", mc, m, NULL );
}
@ -1710,10 +1732,30 @@ void HandleDeathKey(int key)
if (Player_exploded && !key_isfunc(key) && !key_ismod(key) && key)
Death_sequence_aborted = 1; //Any key but func or modifier aborts
#ifdef macintosh
if ( key == (KEY_COMMAND + KEY_SHIFTED + KEY_3) ) {
// save_screen_shot(0);
Death_sequence_aborted = 0; // Clear because code above sets this for any key.
}
#endif
#if defined(__APPLE__) || defined(macintosh)
if (key == KEY_COMMAND+KEY_Q)
//macintosh_quit();
Death_sequence_aborted = 0; // Clear because code above sets this for any key.
#endif
if (key==KEY_PRINT_SCREEN) {
Death_sequence_aborted = 0; // Clear because code above sets this for any key.
}
#if defined(__APPLE__) || defined(macintosh)
if ( key == (KEY_COMMAND+KEY_P) ) {
// key = do_game_pause();
Death_sequence_aborted = 0; // Clear because code above sets this for any key.
}
#endif
if (key == KEY_PAUSE) {
Death_sequence_aborted = 0; // Clear because code above sets this for any key.
}
@ -1738,9 +1780,19 @@ void HandleDeathKey(int key)
void HandleEndlevelKey(int key)
{
#ifdef macintosh
if ( key == (KEY_COMMAND + KEY_SHIFTED + KEY_3) )
save_screen_shot(0);
#endif
if (key==KEY_PRINT_SCREEN)
save_screen_shot(0);
#if defined(__APPLE__) || defined(macintosh)
if ( key == (KEY_COMMAND+KEY_P) )
key = do_game_pause();
#endif
if (key == KEY_PAUSE)
key = do_game_pause(); //so esc from pause will end level
@ -1787,10 +1839,15 @@ void HandleDemoKey(int key)
}
break;
#endif
MAC(case KEY_COMMAND+KEY_1:)
case KEY_F1: show_newdemo_help(); break;
MAC(case KEY_COMMAND+KEY_2:)
case KEY_F2: Config_menu_flag = 1; break;
MAC(case KEY_COMMAND+KEY_3:)
case KEY_F3: toggle_cockpit(); break;
MAC(case KEY_COMMAND+KEY_4:)
case KEY_F4: Newdemo_show_percentage = !Newdemo_show_percentage; break;
MAC(case KEY_COMMAND+KEY_7:)
case KEY_F7:
#ifdef NETWORK
Show_kill_list = (Show_kill_list+1) % ((Game_mode & GM_TEAM) ? 4 : 3);
@ -1822,9 +1879,13 @@ void HandleDemoKey(int key)
case KEY_CTRLED + KEY_LEFT:
newdemo_goto_beginning();
break;
MAC(case KEY_COMMAND+KEY_P:)
case KEY_PAUSE:
do_game_pause();
break;
#ifdef macintosh
case KEY_COMMAND + KEY_SHIFTED + KEY_3:
#endif
case KEY_PRINT_SCREEN:
{
if (PlayerCfg.PRShot)
@ -2097,15 +2158,20 @@ void HandleGameKey(int key)
Function_mode = FMODE_MENU;
}
break;
MAC(case KEY_COMMAND+KEY_1:)
case KEY_F1: show_help(); break;
MAC(case KEY_COMMAND+KEY_2:)
case KEY_F2: Config_menu_flag = 1; break;
MAC(case KEY_COMMAND+KEY_3:)
case KEY_F3: toggle_cockpit(); break;
#ifdef NETWORK
MAC(case KEY_COMMAND+KEY_ALTED+KEY_4:)
case KEY_ALTED + KEY_F4:
Show_reticle_name = (Show_reticle_name+1)%2;
break;
#endif
MAC(case KEY_COMMAND+KEY_5:)
case KEY_F5:
if ( Newdemo_state == ND_STATE_RECORDING )
newdemo_stop_recording();
@ -2113,6 +2179,7 @@ void HandleGameKey(int key)
newdemo_start_recording();
break;
#ifdef NETWORK
MAC(case KEY_COMMAND+KEY_6:)
case KEY_F6:
if (restrict_mode && WaitForRefuseAnswer)
{
@ -2120,15 +2187,18 @@ void HandleGameKey(int key)
HUD_init_message ("Player accepted!");
}
break;
MAC(case KEY_COMMAND+KEY_7:)
case KEY_F7:
Show_kill_list = (Show_kill_list+1) % ((Game_mode & GM_TEAM) ? 4 : 3);
break;
#endif
case KEY_ALTED+KEY_F7:
MAC(case KEY_COMMAND+KEY_ALTED+KEY_7:)
PlayerCfg.HudMode=(PlayerCfg.HudMode+1)%GAUGE_HUD_NUMMODES;
write_player_file();
break;
#ifdef NETWORK
MAC(case KEY_COMMAND+KEY_8:)
case KEY_F8:
multi_send_message_start();
break;
@ -2139,14 +2209,50 @@ void HandleGameKey(int key)
case KEY_F12:
multi_send_macro(key);
break; // send taunt macros
#if defined(__APPLE__) || defined(macintosh)
case KEY_9 + KEY_COMMAND:
multi_send_macro(KEY_F9);
break;
case KEY_0 + KEY_COMMAND:
multi_send_macro(KEY_F10);
break;
case KEY_1 + KEY_COMMAND + KEY_CTRLED:
multi_send_macro(KEY_F11);
break;
case KEY_2 + KEY_COMMAND + KEY_CTRLED:
multi_send_macro(KEY_F12);
break;
#endif
case KEY_SHIFTED + KEY_F9:
case KEY_SHIFTED + KEY_F10:
case KEY_SHIFTED + KEY_F11:
case KEY_SHIFTED + KEY_F12:
multi_define_macro(key);
break; // redefine taunt macros
#if defined(__APPLE__) || defined(macintosh)
case KEY_9 + KEY_SHIFTED + KEY_COMMAND:
multi_define_macro(KEY_F9);
break;
case KEY_0 + KEY_SHIFTED + KEY_COMMAND:
multi_define_macro(KEY_F10);
break;
case KEY_1 + KEY_SHIFTED + KEY_COMMAND + KEY_CTRLED:
multi_define_macro(KEY_F11);
break;
case KEY_2 + KEY_SHIFTED + KEY_COMMAND + KEY_CTRLED:
multi_define_macro(KEY_F12);
break;
#endif
#endif
MAC( case KEY_COMMAND+KEY_P: )
case KEY_PAUSE: do_game_pause(); break;
#ifdef macintosh
case KEY_COMMAND + KEY_SHIFTED + KEY_3:
#endif
case KEY_PRINT_SCREEN:
{
if (PlayerCfg.PRShot)
@ -2161,7 +2267,11 @@ void HandleGameKey(int key)
break;
}
MAC(case KEY_COMMAND+KEY_S:)
MAC(case KEY_COMMAND+KEY_ALTED+KEY_2:)
case KEY_ALTED+KEY_F2: if (!Player_is_dead) state_save_all( 0 ); break; // 0 means not between levels.
MAC(case KEY_COMMAND+KEY_O:)
MAC(case KEY_COMMAND+KEY_ALTED+KEY_3:)
case KEY_ALTED+KEY_F3: if (!Player_is_dead) state_restore_all(1); break;
/*
@ -2201,10 +2311,9 @@ void HandleGameKey(int key)
songs_goto_next_song();
break;
#ifdef MACINTOSH
#if defined(__APPLE__) || defined(macintosh)
case KEY_COMMAND+KEY_Q:
if ( !(Game_mode & GM_MULTI) )
macintosh_quit();
macintosh_quit();
break;
#endif
@ -2306,6 +2415,7 @@ void HandleGameKey(int key)
break;
}
case KEY_DEBUGGED+KEY_F:
MAC(case KEY_COMMAND+KEY_F:)
GameArg.SysFPSIndicator = !GameArg.SysFPSIndicator;
break;
case KEY_DEBUGGED+KEY_SPACEBAR: // Toggle physics flying

View file

@ -439,3 +439,8 @@ void quit_request()
set_warn_func(warn_printf);
exit(0);
}
void macintosh_quit()
{
Function_mode = FMODE_EXIT;
}

View file

@ -59,4 +59,8 @@ extern int start_with_mission;
extern char *start_with_mission_name;
extern int MacHog;
#if defined(__APPLE__) || defined(macintosh)
extern void macintosh_quit(void); // dialog-style quit function
#endif
#endif

View file

@ -672,6 +672,9 @@ void kconfig_sub(kc_item * items,int nitems, char * title)
case KEY_BACKSP:
Int3();
break;
#ifdef macintosh
case KEY_COMMAND+KEY_SHIFTED+KEY_3:
#endif
case KEY_PRINT_SCREEN:
save_screen_shot(0);
break;

View file

@ -2747,7 +2747,11 @@ void newdemo_start_recording()
if ((Newdemo_size+100000) < 2000000000) {
if (((int)(Newdemo_size)) < 500000) {
#if !(defined(__APPLE__) || defined(macintosh))
nm_messagebox(NULL, 1, TXT_OK, TXT_DEMO_NO_SPACE);
#else
nm_messagebox(NULL, 1, TXT_OK, "Not enough space on current\ndrive to start demo recording.");
#endif
return;
}
}

View file

@ -1003,6 +1003,9 @@ int newmenu_do3_real( char * title, char * subtitle, int nitems, newmenu_item *
}
break;
#ifdef macintosh
case KEY_COMMAND+KEY_SHIFTED+KEY_3:
#endif
case KEY_PRINT_SCREEN: save_screen_shot(0); break;
#ifndef NDEBUG
@ -1636,7 +1639,10 @@ ReadFileNames:
key = key_inkey();
switch(key) {
case KEY_PRINT_SCREEN:
#ifdef macintosh
case KEY_COMMAND+KEY_SHIFTED+KEY_3:
#endif
case KEY_PRINT_SCREEN:
save_screen_shot(0);
break;
@ -1984,7 +1990,10 @@ int newmenu_listbox1( char * title, int nitems, char * items[], int allow_abort_
}
switch(key) {
case KEY_PRINT_SCREEN:
#ifdef macintosh
case KEY_COMMAND+KEY_SHIFTED+KEY_3:
#endif
case KEY_PRINT_SCREEN:
save_screen_shot(0);
break;
case KEY_HOME:

View file

@ -92,6 +92,7 @@ ushort GameBitmapXlat[MAX_BITMAP_FILES];
#define DEFAULT_PIGFILE_REGISTERED "descent.pig"
#define PIGGY_BUFFER_SIZE (2048*1024)
#define PIGGY_SMALL_BUFFER_SIZE (1400*1024) // size of buffer when GameArg.SysLowMem is set
int piggy_page_flushed = 0;
@ -479,6 +480,8 @@ int properties_init()
Assert( Piggy_bitmap_cache_size > 0 );
#else
Piggy_bitmap_cache_size = PIGGY_BUFFER_SIZE;
if (GameArg.SysLowMem)
Piggy_bitmap_cache_size = PIGGY_SMALL_BUFFER_SIZE;
#endif
BitmapBits = d_malloc( Piggy_bitmap_cache_size );
if ( BitmapBits == NULL )