1 /* 2 * Portions of this file are copyright Rebirth contributors and licensed as 3 * described in COPYING.txt. 4 * Portions of this file are copyright Parallax Software and licensed 5 * according to the Parallax license below. 6 * See COPYING.txt for license details. 7 8 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX 9 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO 10 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A 11 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS 12 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS 13 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE 14 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE 15 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS 16 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. 17 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. 18 */ 19 20 /* 21 * 22 * Header file for Inferno. Should be included in all source files. 23 * 24 */ 25 26 #pragma once 27 28 #include "dxxsconf.h" 29 #include "fwd-event.h" 30 #include "dsx-ns.h" 31 #include "ntstring.h" 32 #include "player-callsign.h" 33 34 namespace dcx { 35 36 #if defined(__APPLE__) || defined(macintosh) 37 #define KEY_MAC(x) x 38 #else 39 // do not use MAC, it will break MSVC compilation somewhere in rpcdce.h 40 #define KEY_MAC(x) 41 #endif 42 43 /** 44 ** Constants 45 **/ 46 47 // How close two points must be in all dimensions to be considered the same point. 48 #define FIX_EPSILON 10 49 50 // the maximum length of a filename 51 constexpr std::integral_constant<std::size_t, 13> FILENAME_LEN{}; 52 53 // Default event handler for everything except the editor 54 window_event_result standard_handler(const d_event &event); 55 56 // a filename, useful for declaring arrays of filenames 57 struct d_fname : ntstring<FILENAME_LEN - 1> 58 { 59 d_fname &operator=(const d_fname &) = default; 60 template <std::size_t N> 61 void operator=(char (&i)[N]) const = delete; 62 template <std::size_t N> 63 void operator=(const char (&i)[N]) 64 { 65 copy_if(i); 66 } 67 }; 68 69 struct d_interface_unique_state 70 { 71 callsign_t PilotName; 72 #if DXX_HAVE_POISON 73 d_interface_unique_state(); 74 #endif 75 void update_window_title(); 76 }; 77 78 extern d_interface_unique_state InterfaceUniqueState; 79 80 struct d_game_view_unique_state 81 { 82 uint8_t Death_sequence_aborted; 83 }; 84 85 extern d_game_view_unique_state GameViewUniqueState; 86 87 } 88 89 #ifdef dsx 90 namespace dsx { 91 92 /** 93 ** Global variables 94 **/ 95 96 extern int Quitting; 97 extern int Screen_mode; // editor screen or game screen? 98 #ifdef DXX_BUILD_DESCENT_I 99 extern int MacHog; 100 #endif 101 102 } 103 #endif 104