Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Include all of the Allegro libraries so we don't have to later
- #include <stdio.h> // C++ standard library
- #include <iostream> // Input\output stream, cout, cin, cerr, etc.
- #include <string> // C++ string library
- #include <allegro5/allegro.h> // Allegro base library
- #include <allegro5/allegro_audio.h> // Allegro audio library
- #include <allegro5/allegro_acodec.h> // Library used to load different audio codecs
- #include <allegro5/allegro_image.h> // You MUST load the image library for anything bitmap-image related
- #include <allegro5/allegro_font.h> // Allegro font functions library
- #include <allegro5/allegro_ttf.h> // Allegro library used to interface with TrueType fonts
- #include <allegro5/allegro_primitives.h> // Allegro primitives addon, for drawing shapes n' stuff
- #include <allegro5/allegro_native_dialog.h> // You load this for the native message box feature (see below)
- // Namespace usage
- using namespace std;
- // EDIT THESE DEFINES
- #define NF_WINDOW_WIDTH 640 // Window width
- #define NF_WINDOW_HEIGHT 480 // Window height
- #define NF_FPS 60 // Game frames per second
- #define NF_WINDOW_TITLE "Neil's Framework Default Window Title" // Windowed-mode title
- #define NF_START_FULLSCREEN false // true is default fullscreen, false is windowed
- #define NF_SHOW_CURSOR true // true shows the mouse cursor, false hides it in the window/fullscreen
- #define NF_F11_SWITCH_MODE true // true makes pressing F11 automatically switch the window mode: windowed or fullscreen
- #define NF_ESC_ENDGAME true // true makes pressing the "Esc" key automatically close the program, false makes it not
- #define NF_RESERVED_SAMPLES 1 // Number of tracks in the default mixer available to play at any given moment
- #define NF_CLEARCOLOR_RED 255 // Window sync clear color "red" value
- #define NF_CLEARCOLOR_GREEN 255 // Window sync clear color "green" value
- #define NF_CLEARCOLOR_BLUE 255 // Window sync clear color "blue" value
- // Trusty-dusty extra defines
- #define NF_PI 3.141592
- #define NF_E 2.718281
- #define NF_RAD2DEG(r) (r * (180.0 / NF_PI))
- #define NF_DEG2RAD(d) (d / (180.0 / NF_PI))
- // Neil's Framework keycode defines
- #define nfKeyCode_A 0
- #define nfKeyCode_B 1
- #define nfKeyCode_C 2
- #define nfKeyCode_D 3
- #define nfKeyCode_E 4
- #define nfKeyCode_F 5
- #define nfKeyCode_G 6
- #define nfKeyCode_H 7
- #define nfKeyCode_I 8
- #define nfKeyCode_J 9
- #define nfKeyCode_K 10
- #define nfKeyCode_L 11
- #define nfKeyCode_M 12
- #define nfKeyCode_N 13
- #define nfKeyCode_O 14
- #define nfKeyCode_P 15
- #define nfKeyCode_Q 16
- #define nfKeyCode_R 17
- #define nfKeyCode_S 18
- #define nfKeyCode_T 19
- #define nfKeyCode_U 20
- #define nfKeyCode_V 21
- #define nfKeyCode_W 22
- #define nfKeyCode_X 23
- #define nfKeyCode_Y 24
- #define nfKeyCode_Z 25
- #define nfKeyCode_0 26
- #define nfKeyCode_1 27
- #define nfKeyCode_2 28
- #define nfKeyCode_3 29
- #define nfKeyCode_4 30
- #define nfKeyCode_5 31
- #define nfKeyCode_6 32
- #define nfKeyCode_7 33
- #define nfKeyCode_8 34
- #define nfKeyCode_9 35
- #define nfKeyCode_PAD0 36
- #define nfKeyCode_PAD1 37
- #define nfKeyCode_PAD2 38
- #define nfKeyCode_PAD3 39
- #define nfKeyCode_PAD4 40
- #define nfKeyCode_PAD5 41
- #define nfKeyCode_PAD6 42
- #define nfKeyCode_PAD7 43
- #define nfKeyCode_PAD8 44
- #define nfKeyCode_PAD9 45
- #define nfKeyCode_F1 46
- #define nfKeyCode_F2 47
- #define nfKeyCode_F3 48
- #define nfKeyCode_F4 49
- #define nfKeyCode_F5 50
- #define nfKeyCode_F6 51
- #define nfKeyCode_F7 52
- #define nfKeyCode_F8 53
- #define nfKeyCode_F9 54
- #define nfKeyCode_F10 55
- #define nfKeyCode_F11 56
- #define nfKeyCode_F12 57
- #define nfKeyCode_ESCAPE 58
- #define nfKeyCode_TILDE 59
- #define nfKeyCode_MINUS 60
- #define nfKeyCode_EQUALS 61
- #define nfKeyCode_BACKSPACE 62
- #define nfKeyCode_TAB 63
- #define nfKeyCode_OPENBRACE 64
- #define nfKeyCode_CLOSEBRACE 65
- #define nfKeyCode_ENTER 66
- #define nfKeyCode_SEMICOLON 67
- #define nfKeyCode_QUOTE 68
- #define nfKeyCode_BACKSLASH 69
- #define nfKeyCode_BACKSLASH2 70
- #define nfKeyCode_COMMA 71
- #define nfKeyCode_FULLSTOP 72
- #define nfKeyCode_SLASH 73
- #define nfKeyCode_SPACE 74
- #define nfKeyCode_INSERT 75
- #define nfKeyCode_DELETE 76
- #define nfKeyCode_HOME 77
- #define nfKeyCode_END 78
- #define nfKeyCode_PAGEUP 79
- #define nfKeyCode_PAGEDOWN 80
- #define nfKeyCode_LEFT 81
- #define nfKeyCode_RIGHT 82
- #define nfKeyCode_UP 83
- #define nfKeyCode_DOWN 84
- #define nfKeyCode_PADSLASH 85
- #define nfKeyCode_PADASTERISK 86
- #define nfKeyCode_PADMINUS 87
- #define nfKeyCode_PADPLUS 88
- #define nfKeyCode_PADDELETE 89
- #define nfKeyCode_PADENTER 90
- #define nfKeyCode_PRINTSCREEN 91
- #define nfKeyCode_PAUSE 92
- #define nfKeyCode_ABNTC1 93
- #define nfKeyCode_YEN 94
- #define nfKeyCode_KANA 95
- #define nfKeyCode_CONVERT 96
- #define nfKeyCode_NOCONVERT 97
- #define nfKeyCode_AT 98
- #define nfKeyCode_CIRCUMFLEX 99
- #define nfKeyCode_COLON2 100
- #define nfKeyCode_KANJI 101
- #define nfKeyCode_LEFTSHIFT 102
- #define nfKeyCode_RIGHTSHIFT 103
- #define nfKeyCode_LEFTCONTROL 104
- #define nfKeyCode_RIGHTCONTROL 105
- #define nfKeyCode_ALT 106
- #define nfKeyCode_ALTGR 107
- #define nfKeyCode_LEFTWINDOWS 108
- #define nfKeyCode_RIGHTWINDOWS 109
- #define nfKeyCode_MENU 110
- #define nfKeyCode_SCROLLLOCK 111
- #define nfKeyCode_NUMLOCK 112
- #define nfKeyCode_CAPSLOCK 113
- #define nfKeyCode_PADEQUALS 114
- #define nfKeyCode_BACKQUOTE 115
- #define nfKeyCode_SEMICOLON2 116
- #define nfKeyCode_COMMAND 117
- // Key status true is KEY DOWN, false is KEY UP
- bool nfCurrentKeyStatus [118] = {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false};
- bool nfPreviousKeyStatus [118] = {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false};
- int nfMouseX = 0;
- int nfMouseY = 0;
- int nfPreviousMouseX = 0;
- int nfPreviousMouseY = 0;
- bool nfMouseCurrentDown = false; // True is down, false is up (Generic mouse button, no left-right distinguishment for platform compatibility)
- bool nfMousePreviousDown = false;
- // CLASSES
- class nfDisplay {
- public:
- ALLEGRO_DISPLAY *display;
- ALLEGRO_DISPLAY_MODE fullscreenData;
- ALLEGRO_EVENT_QUEUE *eventQueue;
- ALLEGRO_BITMAP *windowIcon;
- ALLEGRO_TIMER *fpsTimer;
- int width, height;
- unsigned char clearRed, clearGreen, clearBlue;
- int windowedWidth, windowedHeight;
- int fullscreenWidth, fullscreenHeight;
- bool isFullscreen;
- bool cursorVisible;
- bool f11SwitchWindowMode, escExit;
- bool syncRedraw, doExit;
- string title;
- } display;
- class nfImage {
- public:
- ALLEGRO_BITMAP *bitmap;
- unsigned int width, height;
- nfImage();
- ~nfImage();
- bool loadFromFile(string);
- };
- class nfSprite {
- public:
- nfImage currentImage;
- float x, y;
- bool flippedHorizontal, flippedVertical;
- nfSprite();
- ~nfSprite();
- void setImage(nfImage);
- void draw();
- };
- // FUNCTIONS
- bool nfInit(); // Initialisation function
- void nfSync(); // Synchronize game in the loop
- void nfSyncReset(); // Reset syncRedraw and others
- bool nfGetEventQueueEmpty(); // Used in thr sync redraw "if" statement
- bool nfDestroy(); // Call at end of program, destroy's "nfDisplay"'s members
- // M M AAAA IIIII N N
- // MM MM A A I NN N
- // M M M M AAAA I N N N
- // M M M M A A I N NN
- // M M M A A IIIII N N
- int main(int argc, char* argv[]) {
- if (!nfInit()) {
- return -1;
- }
- // Create sprites, images, sounds, fonts, etc.
- nfImage mypic;
- nfSprite mysprite;
- if (!mypic.loadFromFile("hello.png")) {
- return -1;
- }
- mysprite.setImage(mypic);
- mysprite.x = 435.0;
- mysprite.y = 235.0;
- while (!display.doExit) {
- if (display.syncRedraw && nfGetEventQueueEmpty()) {
- // Do loop stuff, draw stuff, play sounds (work in progress), draw text & consolidate fonts, etc.
- mysprite.draw();
- nfSyncReset(); // Reset the event system (Mostly just set syncRedraw to false)
- }
- nfSync();
- }
- if (!nfDestroy()) {
- return -1;
- }
- return 0;
- }
- void nfSync() {
- ALLEGRO_EVENT currentEvent;
- al_wait_for_event(display.eventQueue, ¤tEvent);
- if (currentEvent.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
- display.doExit = true;
- } else if (currentEvent.type == ALLEGRO_EVENT_TIMER) {
- display.syncRedraw = true;
- } else if (currentEvent.type == ALLEGRO_EVENT_MOUSE_AXES || currentEvent.type == ALLEGRO_EVENT_MOUSE_LEAVE_DISPLAY) {
- nfPreviousMouseX = nfMouseX;
- nfPreviousMouseY = nfMouseY;
- nfMouseX = currentEvent.mouse.x;
- nfMouseY = currentEvent.mouse.y;
- } else if (currentEvent.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN) {
- nfMousePreviousDown = nfMouseCurrentDown;
- nfMouseCurrentDown = true;
- } else if (currentEvent.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP) {
- nfMousePreviousDown = nfMouseCurrentDown;
- nfMouseCurrentDown = false;
- } else if (currentEvent.type == ALLEGRO_EVENT_KEY_DOWN) {
- switch (currentEvent.keyboard.keycode) {
- case ALLEGRO_KEY_A:
- nfPreviousKeyStatus[nfKeyCode_A] = nfCurrentKeyStatus[nfKeyCode_A];
- nfCurrentKeyStatus[nfKeyCode_A] = true;
- break;
- case ALLEGRO_KEY_B:
- nfPreviousKeyStatus[nfKeyCode_B] = nfCurrentKeyStatus[nfKeyCode_B];
- nfCurrentKeyStatus[nfKeyCode_B] = true;
- break;
- case ALLEGRO_KEY_C:
- nfPreviousKeyStatus[nfKeyCode_C] = nfCurrentKeyStatus[nfKeyCode_C];
- nfCurrentKeyStatus[nfKeyCode_C] = true;
- break;
- case ALLEGRO_KEY_D:
- nfPreviousKeyStatus[nfKeyCode_D] = nfCurrentKeyStatus[nfKeyCode_D];
- nfCurrentKeyStatus[nfKeyCode_D] = true;
- break;
- case ALLEGRO_KEY_E:
- nfPreviousKeyStatus[nfKeyCode_E] = nfCurrentKeyStatus[nfKeyCode_E];
- nfCurrentKeyStatus[nfKeyCode_E] = true;
- break;
- case ALLEGRO_KEY_F:
- nfPreviousKeyStatus[nfKeyCode_F] = nfCurrentKeyStatus[nfKeyCode_F];
- nfCurrentKeyStatus[nfKeyCode_F] = true;
- break;
- case ALLEGRO_KEY_G:
- nfPreviousKeyStatus[nfKeyCode_G] = nfCurrentKeyStatus[nfKeyCode_G];
- nfCurrentKeyStatus[nfKeyCode_G] = true;
- break;
- case ALLEGRO_KEY_H:
- nfPreviousKeyStatus[nfKeyCode_H] = nfCurrentKeyStatus[nfKeyCode_H];
- nfCurrentKeyStatus[nfKeyCode_H] = true;
- break;
- case ALLEGRO_KEY_I:
- nfPreviousKeyStatus[nfKeyCode_I] = nfCurrentKeyStatus[nfKeyCode_I];
- nfCurrentKeyStatus[nfKeyCode_I] = true;
- break;
- case ALLEGRO_KEY_J:
- nfPreviousKeyStatus[nfKeyCode_J] = nfCurrentKeyStatus[nfKeyCode_J];
- nfCurrentKeyStatus[nfKeyCode_J] = true;
- break;
- case ALLEGRO_KEY_K:
- nfPreviousKeyStatus[nfKeyCode_K] = nfCurrentKeyStatus[nfKeyCode_K];
- nfCurrentKeyStatus[nfKeyCode_K] = true;
- break;
- case ALLEGRO_KEY_L:
- nfPreviousKeyStatus[nfKeyCode_L] = nfCurrentKeyStatus[nfKeyCode_L];
- nfCurrentKeyStatus[nfKeyCode_L] = true;
- break;
- case ALLEGRO_KEY_M:
- nfPreviousKeyStatus[nfKeyCode_M] = nfCurrentKeyStatus[nfKeyCode_M];
- nfCurrentKeyStatus[nfKeyCode_M] = true;
- break;
- case ALLEGRO_KEY_N:
- nfPreviousKeyStatus[nfKeyCode_N] = nfCurrentKeyStatus[nfKeyCode_N];
- nfCurrentKeyStatus[nfKeyCode_N] = true;
- break;
- case ALLEGRO_KEY_O:
- nfPreviousKeyStatus[nfKeyCode_O] = nfCurrentKeyStatus[nfKeyCode_O];
- nfCurrentKeyStatus[nfKeyCode_O] = true;
- break;
- case ALLEGRO_KEY_P:
- nfPreviousKeyStatus[nfKeyCode_P] = nfCurrentKeyStatus[nfKeyCode_P];
- nfCurrentKeyStatus[nfKeyCode_P] = true;
- break;
- case ALLEGRO_KEY_Q:
- nfPreviousKeyStatus[nfKeyCode_Q] = nfCurrentKeyStatus[nfKeyCode_Q];
- nfCurrentKeyStatus[nfKeyCode_Q] = true;
- break;
- case ALLEGRO_KEY_R:
- nfPreviousKeyStatus[nfKeyCode_R] = nfCurrentKeyStatus[nfKeyCode_R];
- nfCurrentKeyStatus[nfKeyCode_R] = true;
- break;
- case ALLEGRO_KEY_S:
- nfPreviousKeyStatus[nfKeyCode_S] = nfCurrentKeyStatus[nfKeyCode_S];
- nfCurrentKeyStatus[nfKeyCode_S] = true;
- break;
- case ALLEGRO_KEY_T:
- nfPreviousKeyStatus[nfKeyCode_T] = nfCurrentKeyStatus[nfKeyCode_T];
- nfCurrentKeyStatus[nfKeyCode_T] = true;
- break;
- case ALLEGRO_KEY_U:
- nfPreviousKeyStatus[nfKeyCode_U] = nfCurrentKeyStatus[nfKeyCode_U];
- nfCurrentKeyStatus[nfKeyCode_U] = true;
- break;
- case ALLEGRO_KEY_V:
- nfPreviousKeyStatus[nfKeyCode_V] = nfCurrentKeyStatus[nfKeyCode_V];
- nfCurrentKeyStatus[nfKeyCode_V] = true;
- break;
- case ALLEGRO_KEY_W:
- nfPreviousKeyStatus[nfKeyCode_W] = nfCurrentKeyStatus[nfKeyCode_W];
- nfCurrentKeyStatus[nfKeyCode_W] = true;
- break;
- case ALLEGRO_KEY_X:
- nfPreviousKeyStatus[nfKeyCode_X] = nfCurrentKeyStatus[nfKeyCode_X];
- nfCurrentKeyStatus[nfKeyCode_X] = true;
- break;
- case ALLEGRO_KEY_Y:
- nfPreviousKeyStatus[nfKeyCode_Y] = nfCurrentKeyStatus[nfKeyCode_Y];
- nfCurrentKeyStatus[nfKeyCode_Y] = true;
- break;
- case ALLEGRO_KEY_Z:
- nfPreviousKeyStatus[nfKeyCode_Z] = nfCurrentKeyStatus[nfKeyCode_Z];
- nfCurrentKeyStatus[nfKeyCode_Z] = true;
- break;
- case ALLEGRO_KEY_0:
- nfPreviousKeyStatus[nfKeyCode_0] = nfCurrentKeyStatus[nfKeyCode_0];
- nfCurrentKeyStatus[nfKeyCode_0] = true;
- break;
- case ALLEGRO_KEY_1:
- nfPreviousKeyStatus[nfKeyCode_1] = nfCurrentKeyStatus[nfKeyCode_1];
- nfCurrentKeyStatus[nfKeyCode_1] = true;
- break;
- case ALLEGRO_KEY_2:
- nfPreviousKeyStatus[nfKeyCode_2] = nfCurrentKeyStatus[nfKeyCode_2];
- nfCurrentKeyStatus[nfKeyCode_2] = true;
- break;
- case ALLEGRO_KEY_3:
- nfPreviousKeyStatus[nfKeyCode_3] = nfCurrentKeyStatus[nfKeyCode_3];
- nfCurrentKeyStatus[nfKeyCode_3] = true;
- break;
- case ALLEGRO_KEY_4:
- nfPreviousKeyStatus[nfKeyCode_4] = nfCurrentKeyStatus[nfKeyCode_4];
- nfCurrentKeyStatus[nfKeyCode_4] = true;
- break;
- case ALLEGRO_KEY_5:
- nfPreviousKeyStatus[nfKeyCode_5] = nfCurrentKeyStatus[nfKeyCode_5];
- nfCurrentKeyStatus[nfKeyCode_5] = true;
- break;
- case ALLEGRO_KEY_6:
- nfPreviousKeyStatus[nfKeyCode_6] = nfCurrentKeyStatus[nfKeyCode_6];
- nfCurrentKeyStatus[nfKeyCode_6] = true;
- break;
- case ALLEGRO_KEY_7:
- nfPreviousKeyStatus[nfKeyCode_7] = nfCurrentKeyStatus[nfKeyCode_7];
- nfCurrentKeyStatus[nfKeyCode_7] = true;
- break;
- case ALLEGRO_KEY_8:
- nfPreviousKeyStatus[nfKeyCode_8] = nfCurrentKeyStatus[nfKeyCode_8];
- nfCurrentKeyStatus[nfKeyCode_8] = true;
- break;
- case ALLEGRO_KEY_9:
- nfPreviousKeyStatus[nfKeyCode_9] = nfCurrentKeyStatus[nfKeyCode_9];
- nfCurrentKeyStatus[nfKeyCode_9] = true;
- break;
- case ALLEGRO_KEY_PAD_0:
- nfPreviousKeyStatus[nfKeyCode_PAD0] = nfCurrentKeyStatus[nfKeyCode_PAD0];
- nfCurrentKeyStatus[nfKeyCode_PAD0] = true;
- break;
- case ALLEGRO_KEY_PAD_1:
- nfPreviousKeyStatus[nfKeyCode_PAD1] = nfCurrentKeyStatus[nfKeyCode_PAD1];
- nfCurrentKeyStatus[nfKeyCode_PAD1] = true;
- break;
- case ALLEGRO_KEY_PAD_2:
- nfPreviousKeyStatus[nfKeyCode_PAD2] = nfCurrentKeyStatus[nfKeyCode_PAD2];
- nfCurrentKeyStatus[nfKeyCode_PAD2] = true;
- break;
- case ALLEGRO_KEY_PAD_3:
- nfPreviousKeyStatus[nfKeyCode_PAD3] = nfCurrentKeyStatus[nfKeyCode_PAD3];
- nfCurrentKeyStatus[nfKeyCode_PAD3] = true;
- break;
- case ALLEGRO_KEY_PAD_4:
- nfPreviousKeyStatus[nfKeyCode_PAD4] = nfCurrentKeyStatus[nfKeyCode_PAD4];
- nfCurrentKeyStatus[nfKeyCode_PAD4] = true;
- break;
- case ALLEGRO_KEY_PAD_5:
- nfPreviousKeyStatus[nfKeyCode_PAD5] = nfCurrentKeyStatus[nfKeyCode_PAD5];
- nfCurrentKeyStatus[nfKeyCode_PAD5] = true;
- break;
- case ALLEGRO_KEY_PAD_6:
- nfPreviousKeyStatus[nfKeyCode_PAD6] = nfCurrentKeyStatus[nfKeyCode_PAD6];
- nfCurrentKeyStatus[nfKeyCode_PAD6] = true;
- break;
- case ALLEGRO_KEY_PAD_7:
- nfPreviousKeyStatus[nfKeyCode_PAD7] = nfCurrentKeyStatus[nfKeyCode_PAD7];
- nfCurrentKeyStatus[nfKeyCode_PAD7] = true;
- break;
- case ALLEGRO_KEY_PAD_8:
- nfPreviousKeyStatus[nfKeyCode_PAD8] = nfCurrentKeyStatus[nfKeyCode_PAD8];
- nfCurrentKeyStatus[nfKeyCode_PAD8] = true;
- break;
- case ALLEGRO_KEY_PAD_9:
- nfPreviousKeyStatus[nfKeyCode_PAD9] = nfCurrentKeyStatus[nfKeyCode_PAD9];
- nfCurrentKeyStatus[nfKeyCode_PAD9] = true;
- break;
- case ALLEGRO_KEY_F1:
- nfPreviousKeyStatus[nfKeyCode_F1] = nfCurrentKeyStatus[nfKeyCode_F1];
- nfCurrentKeyStatus[nfKeyCode_F1] = true;
- break;
- case ALLEGRO_KEY_F2:
- nfPreviousKeyStatus[nfKeyCode_F2] = nfCurrentKeyStatus[nfKeyCode_F2];
- nfCurrentKeyStatus[nfKeyCode_F2] = true;
- break;
- case ALLEGRO_KEY_F3:
- nfPreviousKeyStatus[nfKeyCode_F3] = nfCurrentKeyStatus[nfKeyCode_F3];
- nfCurrentKeyStatus[nfKeyCode_F3] = true;
- break;
- case ALLEGRO_KEY_F4:
- nfPreviousKeyStatus[nfKeyCode_F4] = nfCurrentKeyStatus[nfKeyCode_F4];
- nfCurrentKeyStatus[nfKeyCode_F4] = true;
- break;
- case ALLEGRO_KEY_F5:
- nfPreviousKeyStatus[nfKeyCode_F5] = nfCurrentKeyStatus[nfKeyCode_F5];
- nfCurrentKeyStatus[nfKeyCode_F5] = true;
- break;
- case ALLEGRO_KEY_F6:
- nfPreviousKeyStatus[nfKeyCode_F6] = nfCurrentKeyStatus[nfKeyCode_F6];
- nfCurrentKeyStatus[nfKeyCode_F6] = true;
- break;
- case ALLEGRO_KEY_F7:
- nfPreviousKeyStatus[nfKeyCode_F7] = nfCurrentKeyStatus[nfKeyCode_F7];
- nfCurrentKeyStatus[nfKeyCode_F7] = true;
- break;
- case ALLEGRO_KEY_F8:
- nfPreviousKeyStatus[nfKeyCode_F8] = nfCurrentKeyStatus[nfKeyCode_F8];
- nfCurrentKeyStatus[nfKeyCode_F8] = true;
- break;
- case ALLEGRO_KEY_F9:
- nfPreviousKeyStatus[nfKeyCode_F9] = nfCurrentKeyStatus[nfKeyCode_F9];
- nfCurrentKeyStatus[nfKeyCode_F9] = true;
- break;
- case ALLEGRO_KEY_F10:
- nfPreviousKeyStatus[nfKeyCode_F10] = nfCurrentKeyStatus[nfKeyCode_F10];
- nfCurrentKeyStatus[nfKeyCode_F10] = true;
- break;
- case ALLEGRO_KEY_F11:
- nfPreviousKeyStatus[nfKeyCode_F11] = nfCurrentKeyStatus[nfKeyCode_F11];
- nfCurrentKeyStatus[nfKeyCode_F11] = true;
- break;
- case ALLEGRO_KEY_F12:
- nfPreviousKeyStatus[nfKeyCode_F12] = nfCurrentKeyStatus[nfKeyCode_F12];
- nfCurrentKeyStatus[nfKeyCode_F12] = true;
- break;
- case ALLEGRO_KEY_ESCAPE:
- nfPreviousKeyStatus[nfKeyCode_ESCAPE] = nfCurrentKeyStatus[nfKeyCode_ESCAPE];
- nfCurrentKeyStatus[nfKeyCode_ESCAPE] = true;
- break;
- case ALLEGRO_KEY_TILDE:
- nfPreviousKeyStatus[nfKeyCode_TILDE] = nfCurrentKeyStatus[nfKeyCode_TILDE];
- nfCurrentKeyStatus[nfKeyCode_TILDE] = true;
- break;
- case ALLEGRO_KEY_MINUS:
- nfPreviousKeyStatus[nfKeyCode_MINUS] = nfCurrentKeyStatus[nfKeyCode_MINUS];
- nfCurrentKeyStatus[nfKeyCode_MINUS] = true;
- break;
- case ALLEGRO_KEY_EQUALS:
- nfPreviousKeyStatus[nfKeyCode_EQUALS] = nfCurrentKeyStatus[nfKeyCode_EQUALS];
- nfCurrentKeyStatus[nfKeyCode_EQUALS] = true;
- break;
- case ALLEGRO_KEY_BACKSPACE:
- nfPreviousKeyStatus[nfKeyCode_BACKSPACE] = nfCurrentKeyStatus[nfKeyCode_BACKSPACE];
- nfCurrentKeyStatus[nfKeyCode_BACKSPACE] = true;
- break;
- case ALLEGRO_KEY_TAB:
- nfPreviousKeyStatus[nfKeyCode_TAB] = nfCurrentKeyStatus[nfKeyCode_TAB];
- nfCurrentKeyStatus[nfKeyCode_TAB] = true;
- break;
- case ALLEGRO_KEY_OPENBRACE:
- nfPreviousKeyStatus[nfKeyCode_OPENBRACE] = nfCurrentKeyStatus[nfKeyCode_OPENBRACE];
- nfCurrentKeyStatus[nfKeyCode_OPENBRACE] = true;
- break;
- case ALLEGRO_KEY_CLOSEBRACE:
- nfPreviousKeyStatus[nfKeyCode_CLOSEBRACE] = nfCurrentKeyStatus[nfKeyCode_CLOSEBRACE];
- nfCurrentKeyStatus[nfKeyCode_CLOSEBRACE] = true;
- break;
- case ALLEGRO_KEY_ENTER:
- nfPreviousKeyStatus[nfKeyCode_ENTER] = nfCurrentKeyStatus[nfKeyCode_ENTER];
- nfCurrentKeyStatus[nfKeyCode_ENTER] = true;
- break;
- case ALLEGRO_KEY_SEMICOLON:
- nfPreviousKeyStatus[nfKeyCode_SEMICOLON] = nfCurrentKeyStatus[nfKeyCode_SEMICOLON];
- nfCurrentKeyStatus[nfKeyCode_SEMICOLON] = true;
- break;
- case ALLEGRO_KEY_QUOTE:
- nfPreviousKeyStatus[nfKeyCode_QUOTE] = nfCurrentKeyStatus[nfKeyCode_QUOTE];
- nfCurrentKeyStatus[nfKeyCode_QUOTE] = true;
- break;
- case ALLEGRO_KEY_BACKSLASH:
- nfPreviousKeyStatus[nfKeyCode_BACKSLASH] = nfCurrentKeyStatus[nfKeyCode_BACKSLASH];
- nfCurrentKeyStatus[nfKeyCode_BACKSLASH] = true;
- break;
- case ALLEGRO_KEY_BACKSLASH2:
- nfPreviousKeyStatus[nfKeyCode_BACKSLASH2] = nfCurrentKeyStatus[nfKeyCode_BACKSLASH2];
- nfCurrentKeyStatus[nfKeyCode_BACKSLASH2] = true;
- break;
- case ALLEGRO_KEY_COMMA:
- nfPreviousKeyStatus[nfKeyCode_COMMA] = nfCurrentKeyStatus[nfKeyCode_COMMA];
- nfCurrentKeyStatus[nfKeyCode_COMMA] = true;
- break;
- case ALLEGRO_KEY_FULLSTOP:
- nfPreviousKeyStatus[nfKeyCode_FULLSTOP] = nfCurrentKeyStatus[nfKeyCode_FULLSTOP];
- nfCurrentKeyStatus[nfKeyCode_FULLSTOP] = true;
- break;
- case ALLEGRO_KEY_SLASH:
- nfPreviousKeyStatus[nfKeyCode_SLASH] = nfCurrentKeyStatus[nfKeyCode_SLASH];
- nfCurrentKeyStatus[nfKeyCode_SLASH] = true;
- break;
- case ALLEGRO_KEY_SPACE:
- nfPreviousKeyStatus[nfKeyCode_SPACE] = nfCurrentKeyStatus[nfKeyCode_SPACE];
- nfCurrentKeyStatus[nfKeyCode_SPACE] = true;
- break;
- case ALLEGRO_KEY_INSERT:
- nfPreviousKeyStatus[nfKeyCode_INSERT] = nfCurrentKeyStatus[nfKeyCode_INSERT];
- nfCurrentKeyStatus[nfKeyCode_INSERT] = true;
- break;
- case ALLEGRO_KEY_DELETE:
- nfPreviousKeyStatus[nfKeyCode_DELETE] = nfCurrentKeyStatus[nfKeyCode_DELETE];
- nfCurrentKeyStatus[nfKeyCode_DELETE] = true;
- break;
- case ALLEGRO_KEY_HOME:
- nfPreviousKeyStatus[nfKeyCode_HOME] = nfCurrentKeyStatus[nfKeyCode_HOME];
- nfCurrentKeyStatus[nfKeyCode_HOME] = true;
- break;
- case ALLEGRO_KEY_END:
- nfPreviousKeyStatus[nfKeyCode_END] = nfCurrentKeyStatus[nfKeyCode_END];
- nfCurrentKeyStatus[nfKeyCode_END] = true;
- break;
- case ALLEGRO_KEY_PGUP:
- nfPreviousKeyStatus[nfKeyCode_PAGEUP] = nfCurrentKeyStatus[nfKeyCode_PAGEUP];
- nfCurrentKeyStatus[nfKeyCode_PAGEUP] = true;
- break;
- case ALLEGRO_KEY_PGDN:
- nfPreviousKeyStatus[nfKeyCode_PAGEDOWN] = nfCurrentKeyStatus[nfKeyCode_PAGEDOWN];
- nfCurrentKeyStatus[nfKeyCode_PAGEDOWN] = true;
- break;
- case ALLEGRO_KEY_LEFT:
- nfPreviousKeyStatus[nfKeyCode_LEFT] = nfCurrentKeyStatus[nfKeyCode_LEFT];
- nfCurrentKeyStatus[nfKeyCode_LEFT] = true;
- break;
- case ALLEGRO_KEY_RIGHT:
- nfPreviousKeyStatus[nfKeyCode_RIGHT] = nfCurrentKeyStatus[nfKeyCode_RIGHT];
- nfCurrentKeyStatus[nfKeyCode_RIGHT] = true;
- break;
- case ALLEGRO_KEY_UP:
- nfPreviousKeyStatus[nfKeyCode_UP] = nfCurrentKeyStatus[nfKeyCode_UP];
- nfCurrentKeyStatus[nfKeyCode_UP] = true;
- break;
- case ALLEGRO_KEY_DOWN:
- nfPreviousKeyStatus[nfKeyCode_DOWN] = nfCurrentKeyStatus[nfKeyCode_DOWN];
- nfCurrentKeyStatus[nfKeyCode_DOWN] = true;
- break;
- case ALLEGRO_KEY_PAD_SLASH:
- nfPreviousKeyStatus[nfKeyCode_PADSLASH] = nfCurrentKeyStatus[nfKeyCode_PADSLASH];
- nfCurrentKeyStatus[nfKeyCode_PADSLASH] = true;
- break;
- case ALLEGRO_KEY_PAD_ASTERISK:
- nfPreviousKeyStatus[nfKeyCode_PADASTERISK] = nfCurrentKeyStatus[nfKeyCode_PADASTERISK];
- nfCurrentKeyStatus[nfKeyCode_PADASTERISK] = true;
- break;
- case ALLEGRO_KEY_PAD_MINUS:
- nfPreviousKeyStatus[nfKeyCode_PADMINUS] = nfCurrentKeyStatus[nfKeyCode_PADMINUS];
- nfCurrentKeyStatus[nfKeyCode_PADMINUS] = true;
- break;
- case ALLEGRO_KEY_PAD_PLUS:
- nfPreviousKeyStatus[nfKeyCode_PADPLUS] = nfCurrentKeyStatus[nfKeyCode_PADPLUS];
- nfCurrentKeyStatus[nfKeyCode_PADPLUS] = true;
- break;
- case ALLEGRO_KEY_PAD_DELETE:
- nfPreviousKeyStatus[nfKeyCode_PADDELETE] = nfCurrentKeyStatus[nfKeyCode_PADDELETE];
- nfCurrentKeyStatus[nfKeyCode_PADDELETE] = true;
- break;
- case ALLEGRO_KEY_PAD_ENTER:
- nfPreviousKeyStatus[nfKeyCode_PADENTER] = nfCurrentKeyStatus[nfKeyCode_PADENTER];
- nfCurrentKeyStatus[nfKeyCode_PADENTER] = true;
- break;
- case ALLEGRO_KEY_PRINTSCREEN:
- nfPreviousKeyStatus[nfKeyCode_PRINTSCREEN] = nfCurrentKeyStatus[nfKeyCode_PRINTSCREEN];
- nfCurrentKeyStatus[nfKeyCode_PRINTSCREEN] = true;
- break;
- case ALLEGRO_KEY_PAUSE:
- nfPreviousKeyStatus[nfKeyCode_PAUSE] = nfCurrentKeyStatus[nfKeyCode_PAUSE];
- nfCurrentKeyStatus[nfKeyCode_PAUSE] = true;
- break;
- case ALLEGRO_KEY_ABNT_C1:
- nfPreviousKeyStatus[nfKeyCode_ABNTC1] = nfCurrentKeyStatus[nfKeyCode_ABNTC1];
- nfCurrentKeyStatus[nfKeyCode_ABNTC1] = true;
- break;
- case ALLEGRO_KEY_YEN:
- nfPreviousKeyStatus[nfKeyCode_YEN] = nfCurrentKeyStatus[nfKeyCode_YEN];
- nfCurrentKeyStatus[nfKeyCode_YEN] = true;
- break;
- case ALLEGRO_KEY_KANA:
- nfPreviousKeyStatus[nfKeyCode_KANA] = nfCurrentKeyStatus[nfKeyCode_KANA];
- nfCurrentKeyStatus[nfKeyCode_KANA] = true;
- break;
- case ALLEGRO_KEY_CONVERT:
- nfPreviousKeyStatus[nfKeyCode_CONVERT] = nfCurrentKeyStatus[nfKeyCode_CONVERT];
- nfCurrentKeyStatus[nfKeyCode_CONVERT] = true;
- break;
- case ALLEGRO_KEY_NOCONVERT:
- nfPreviousKeyStatus[nfKeyCode_NOCONVERT] = nfCurrentKeyStatus[nfKeyCode_NOCONVERT];
- nfCurrentKeyStatus[nfKeyCode_NOCONVERT] = true;
- break;
- case ALLEGRO_KEY_AT:
- nfPreviousKeyStatus[nfKeyCode_AT] = nfCurrentKeyStatus[nfKeyCode_AT];
- nfCurrentKeyStatus[nfKeyCode_AT] = true;
- break;
- case ALLEGRO_KEY_CIRCUMFLEX:
- nfPreviousKeyStatus[nfKeyCode_CIRCUMFLEX] = nfCurrentKeyStatus[nfKeyCode_CIRCUMFLEX];
- nfCurrentKeyStatus[nfKeyCode_CIRCUMFLEX] = true;
- break;
- case ALLEGRO_KEY_COLON2:
- nfPreviousKeyStatus[nfKeyCode_COLON2] = nfCurrentKeyStatus[nfKeyCode_COLON2];
- nfCurrentKeyStatus[nfKeyCode_COLON2] = true;
- break;
- case ALLEGRO_KEY_KANJI:
- nfPreviousKeyStatus[nfKeyCode_KANJI] = nfCurrentKeyStatus[nfKeyCode_KANJI];
- nfCurrentKeyStatus[nfKeyCode_KANJI] = true;
- break;
- case ALLEGRO_KEY_LSHIFT:
- nfPreviousKeyStatus[nfKeyCode_LEFTSHIFT] = nfCurrentKeyStatus[nfKeyCode_LEFTSHIFT];
- nfCurrentKeyStatus[nfKeyCode_LEFTSHIFT] = true;
- break;
- case ALLEGRO_KEY_RSHIFT:
- nfPreviousKeyStatus[nfKeyCode_RIGHTSHIFT] = nfCurrentKeyStatus[nfKeyCode_RIGHTSHIFT];
- nfCurrentKeyStatus[nfKeyCode_RIGHTSHIFT] = true;
- break;
- case ALLEGRO_KEY_LCTRL:
- nfPreviousKeyStatus[nfKeyCode_LEFTCONTROL] = nfCurrentKeyStatus[nfKeyCode_LEFTCONTROL];
- nfCurrentKeyStatus[nfKeyCode_LEFTCONTROL] = true;
- break;
- case ALLEGRO_KEY_RCTRL:
- nfPreviousKeyStatus[nfKeyCode_RIGHTCONTROL] = nfCurrentKeyStatus[nfKeyCode_RIGHTCONTROL];
- nfCurrentKeyStatus[nfKeyCode_RIGHTCONTROL] = true;
- break;
- case ALLEGRO_KEY_ALT:
- nfPreviousKeyStatus[nfKeyCode_ALT] = nfCurrentKeyStatus[nfKeyCode_ALT];
- nfCurrentKeyStatus[nfKeyCode_ALT] = true;
- break;
- case ALLEGRO_KEY_ALTGR:
- nfPreviousKeyStatus[nfKeyCode_ALTGR] = nfCurrentKeyStatus[nfKeyCode_ALTGR];
- nfCurrentKeyStatus[nfKeyCode_ALTGR] = true;
- break;
- case ALLEGRO_KEY_LWIN:
- nfPreviousKeyStatus[nfKeyCode_LEFTWINDOWS] = nfCurrentKeyStatus[nfKeyCode_LEFTWINDOWS];
- nfCurrentKeyStatus[nfKeyCode_LEFTWINDOWS] = true;
- break;
- case ALLEGRO_KEY_RWIN:
- nfPreviousKeyStatus[nfKeyCode_RIGHTWINDOWS] = nfCurrentKeyStatus[nfKeyCode_RIGHTWINDOWS];
- nfCurrentKeyStatus[nfKeyCode_RIGHTWINDOWS] = true;
- break;
- case ALLEGRO_KEY_MENU:
- nfPreviousKeyStatus[nfKeyCode_MENU] = nfCurrentKeyStatus[nfKeyCode_MENU];
- nfCurrentKeyStatus[nfKeyCode_MENU] = true;
- break;
- case ALLEGRO_KEY_SCROLLLOCK:
- nfPreviousKeyStatus[nfKeyCode_SCROLLLOCK] = nfCurrentKeyStatus[nfKeyCode_SCROLLLOCK];
- nfCurrentKeyStatus[nfKeyCode_SCROLLLOCK] = true;
- break;
- case ALLEGRO_KEY_NUMLOCK:
- nfPreviousKeyStatus[nfKeyCode_NUMLOCK] = nfCurrentKeyStatus[nfKeyCode_NUMLOCK];
- nfCurrentKeyStatus[nfKeyCode_NUMLOCK] = true;
- break;
- case ALLEGRO_KEY_CAPSLOCK:
- nfPreviousKeyStatus[nfKeyCode_CAPSLOCK] = nfCurrentKeyStatus[nfKeyCode_CAPSLOCK];
- nfCurrentKeyStatus[nfKeyCode_CAPSLOCK] = true;
- break;
- case ALLEGRO_KEY_PAD_EQUALS:
- nfPreviousKeyStatus[nfKeyCode_PADEQUALS] = nfCurrentKeyStatus[nfKeyCode_PADEQUALS];
- nfCurrentKeyStatus[nfKeyCode_PADEQUALS] = true;
- break;
- case ALLEGRO_KEY_BACKQUOTE:
- nfPreviousKeyStatus[nfKeyCode_BACKQUOTE] = nfCurrentKeyStatus[nfKeyCode_BACKQUOTE];
- nfCurrentKeyStatus[nfKeyCode_BACKQUOTE] = true;
- break;
- case ALLEGRO_KEY_SEMICOLON2:
- nfPreviousKeyStatus[nfKeyCode_SEMICOLON2] = nfCurrentKeyStatus[nfKeyCode_SEMICOLON2];
- nfCurrentKeyStatus[nfKeyCode_SEMICOLON2] = true;
- break;
- case ALLEGRO_KEY_COMMAND:
- nfPreviousKeyStatus[nfKeyCode_COMMAND] = nfCurrentKeyStatus[nfKeyCode_COMMAND];
- nfCurrentKeyStatus[nfKeyCode_COMMAND] = true;
- break;
- }
- } else if (currentEvent.type == ALLEGRO_EVENT_KEY_UP) {
- switch (currentEvent.keyboard.keycode) {
- case ALLEGRO_KEY_A:
- nfPreviousKeyStatus[nfKeyCode_A] = nfCurrentKeyStatus[nfKeyCode_A];
- nfCurrentKeyStatus[nfKeyCode_A] = false;
- break;
- case ALLEGRO_KEY_B:
- nfPreviousKeyStatus[nfKeyCode_B] = nfCurrentKeyStatus[nfKeyCode_B];
- nfCurrentKeyStatus[nfKeyCode_B] = false;
- break;
- case ALLEGRO_KEY_C:
- nfPreviousKeyStatus[nfKeyCode_C] = nfCurrentKeyStatus[nfKeyCode_C];
- nfCurrentKeyStatus[nfKeyCode_C] = false;
- break;
- case ALLEGRO_KEY_D:
- nfPreviousKeyStatus[nfKeyCode_D] = nfCurrentKeyStatus[nfKeyCode_D];
- nfCurrentKeyStatus[nfKeyCode_D] = false;
- break;
- case ALLEGRO_KEY_E:
- nfPreviousKeyStatus[nfKeyCode_E] = nfCurrentKeyStatus[nfKeyCode_E];
- nfCurrentKeyStatus[nfKeyCode_E] = false;
- break;
- case ALLEGRO_KEY_F:
- nfPreviousKeyStatus[nfKeyCode_F] = nfCurrentKeyStatus[nfKeyCode_F];
- nfCurrentKeyStatus[nfKeyCode_F] = false;
- break;
- case ALLEGRO_KEY_G:
- nfPreviousKeyStatus[nfKeyCode_G] = nfCurrentKeyStatus[nfKeyCode_G];
- nfCurrentKeyStatus[nfKeyCode_G] = false;
- break;
- case ALLEGRO_KEY_H:
- nfPreviousKeyStatus[nfKeyCode_H] = nfCurrentKeyStatus[nfKeyCode_H];
- nfCurrentKeyStatus[nfKeyCode_H] = false;
- break;
- case ALLEGRO_KEY_I:
- nfPreviousKeyStatus[nfKeyCode_I] = nfCurrentKeyStatus[nfKeyCode_I];
- nfCurrentKeyStatus[nfKeyCode_I] = false;
- break;
- case ALLEGRO_KEY_J:
- nfPreviousKeyStatus[nfKeyCode_J] = nfCurrentKeyStatus[nfKeyCode_J];
- nfCurrentKeyStatus[nfKeyCode_J] = false;
- break;
- case ALLEGRO_KEY_K:
- nfPreviousKeyStatus[nfKeyCode_K] = nfCurrentKeyStatus[nfKeyCode_K];
- nfCurrentKeyStatus[nfKeyCode_K] = false;
- break;
- case ALLEGRO_KEY_L:
- nfPreviousKeyStatus[nfKeyCode_L] = nfCurrentKeyStatus[nfKeyCode_L];
- nfCurrentKeyStatus[nfKeyCode_L] = false;
- break;
- case ALLEGRO_KEY_M:
- nfPreviousKeyStatus[nfKeyCode_M] = nfCurrentKeyStatus[nfKeyCode_M];
- nfCurrentKeyStatus[nfKeyCode_M] = false;
- break;
- case ALLEGRO_KEY_N:
- nfPreviousKeyStatus[nfKeyCode_N] = nfCurrentKeyStatus[nfKeyCode_N];
- nfCurrentKeyStatus[nfKeyCode_N] = false;
- break;
- case ALLEGRO_KEY_O:
- nfPreviousKeyStatus[nfKeyCode_O] = nfCurrentKeyStatus[nfKeyCode_O];
- nfCurrentKeyStatus[nfKeyCode_O] = false;
- break;
- case ALLEGRO_KEY_P:
- nfPreviousKeyStatus[nfKeyCode_P] = nfCurrentKeyStatus[nfKeyCode_P];
- nfCurrentKeyStatus[nfKeyCode_P] = false;
- break;
- case ALLEGRO_KEY_Q:
- nfPreviousKeyStatus[nfKeyCode_Q] = nfCurrentKeyStatus[nfKeyCode_Q];
- nfCurrentKeyStatus[nfKeyCode_Q] = false;
- break;
- case ALLEGRO_KEY_R:
- nfPreviousKeyStatus[nfKeyCode_R] = nfCurrentKeyStatus[nfKeyCode_R];
- nfCurrentKeyStatus[nfKeyCode_R] = false;
- break;
- case ALLEGRO_KEY_S:
- nfPreviousKeyStatus[nfKeyCode_S] = nfCurrentKeyStatus[nfKeyCode_S];
- nfCurrentKeyStatus[nfKeyCode_S] = false;
- break;
- case ALLEGRO_KEY_T:
- nfPreviousKeyStatus[nfKeyCode_T] = nfCurrentKeyStatus[nfKeyCode_T];
- nfCurrentKeyStatus[nfKeyCode_T] = false;
- break;
- case ALLEGRO_KEY_U:
- nfPreviousKeyStatus[nfKeyCode_U] = nfCurrentKeyStatus[nfKeyCode_U];
- nfCurrentKeyStatus[nfKeyCode_U] = false;
- break;
- case ALLEGRO_KEY_V:
- nfPreviousKeyStatus[nfKeyCode_V] = nfCurrentKeyStatus[nfKeyCode_V];
- nfCurrentKeyStatus[nfKeyCode_V] = false;
- break;
- case ALLEGRO_KEY_W:
- nfPreviousKeyStatus[nfKeyCode_W] = nfCurrentKeyStatus[nfKeyCode_W];
- nfCurrentKeyStatus[nfKeyCode_W] = false;
- break;
- case ALLEGRO_KEY_X:
- nfPreviousKeyStatus[nfKeyCode_X] = nfCurrentKeyStatus[nfKeyCode_X];
- nfCurrentKeyStatus[nfKeyCode_X] = false;
- break;
- case ALLEGRO_KEY_Y:
- nfPreviousKeyStatus[nfKeyCode_Y] = nfCurrentKeyStatus[nfKeyCode_Y];
- nfCurrentKeyStatus[nfKeyCode_Y] = false;
- break;
- case ALLEGRO_KEY_Z:
- nfPreviousKeyStatus[nfKeyCode_Z] = nfCurrentKeyStatus[nfKeyCode_Z];
- nfCurrentKeyStatus[nfKeyCode_Z] = false;
- break;
- case ALLEGRO_KEY_0:
- nfPreviousKeyStatus[nfKeyCode_0] = nfCurrentKeyStatus[nfKeyCode_0];
- nfCurrentKeyStatus[nfKeyCode_0] = false;
- break;
- case ALLEGRO_KEY_1:
- nfPreviousKeyStatus[nfKeyCode_1] = nfCurrentKeyStatus[nfKeyCode_1];
- nfCurrentKeyStatus[nfKeyCode_1] = false;
- break;
- case ALLEGRO_KEY_2:
- nfPreviousKeyStatus[nfKeyCode_2] = nfCurrentKeyStatus[nfKeyCode_2];
- nfCurrentKeyStatus[nfKeyCode_2] = false;
- break;
- case ALLEGRO_KEY_3:
- nfPreviousKeyStatus[nfKeyCode_3] = nfCurrentKeyStatus[nfKeyCode_3];
- nfCurrentKeyStatus[nfKeyCode_3] = false;
- break;
- case ALLEGRO_KEY_4:
- nfPreviousKeyStatus[nfKeyCode_4] = nfCurrentKeyStatus[nfKeyCode_4];
- nfCurrentKeyStatus[nfKeyCode_4] = false;
- break;
- case ALLEGRO_KEY_5:
- nfPreviousKeyStatus[nfKeyCode_5] = nfCurrentKeyStatus[nfKeyCode_5];
- nfCurrentKeyStatus[nfKeyCode_5] = false;
- break;
- case ALLEGRO_KEY_6:
- nfPreviousKeyStatus[nfKeyCode_6] = nfCurrentKeyStatus[nfKeyCode_6];
- nfCurrentKeyStatus[nfKeyCode_6] = false;
- break;
- case ALLEGRO_KEY_7:
- nfPreviousKeyStatus[nfKeyCode_7] = nfCurrentKeyStatus[nfKeyCode_7];
- nfCurrentKeyStatus[nfKeyCode_7] = false;
- break;
- case ALLEGRO_KEY_8:
- nfPreviousKeyStatus[nfKeyCode_8] = nfCurrentKeyStatus[nfKeyCode_8];
- nfCurrentKeyStatus[nfKeyCode_8] = false;
- break;
- case ALLEGRO_KEY_9:
- nfPreviousKeyStatus[nfKeyCode_9] = nfCurrentKeyStatus[nfKeyCode_9];
- nfCurrentKeyStatus[nfKeyCode_9] = false;
- break;
- case ALLEGRO_KEY_PAD_0:
- nfPreviousKeyStatus[nfKeyCode_PAD0] = nfCurrentKeyStatus[nfKeyCode_PAD0];
- nfCurrentKeyStatus[nfKeyCode_PAD0] = false;
- break;
- case ALLEGRO_KEY_PAD_1:
- nfPreviousKeyStatus[nfKeyCode_PAD1] = nfCurrentKeyStatus[nfKeyCode_PAD1];
- nfCurrentKeyStatus[nfKeyCode_PAD1] = false;
- break;
- case ALLEGRO_KEY_PAD_2:
- nfPreviousKeyStatus[nfKeyCode_PAD2] = nfCurrentKeyStatus[nfKeyCode_PAD2];
- nfCurrentKeyStatus[nfKeyCode_PAD2] = false;
- break;
- case ALLEGRO_KEY_PAD_3:
- nfPreviousKeyStatus[nfKeyCode_PAD3] = nfCurrentKeyStatus[nfKeyCode_PAD3];
- nfCurrentKeyStatus[nfKeyCode_PAD3] = false;
- break;
- case ALLEGRO_KEY_PAD_4:
- nfPreviousKeyStatus[nfKeyCode_PAD4] = nfCurrentKeyStatus[nfKeyCode_PAD4];
- nfCurrentKeyStatus[nfKeyCode_PAD4] = false;
- break;
- case ALLEGRO_KEY_PAD_5:
- nfPreviousKeyStatus[nfKeyCode_PAD5] = nfCurrentKeyStatus[nfKeyCode_PAD5];
- nfCurrentKeyStatus[nfKeyCode_PAD5] = false;
- break;
- case ALLEGRO_KEY_PAD_6:
- nfPreviousKeyStatus[nfKeyCode_PAD6] = nfCurrentKeyStatus[nfKeyCode_PAD6];
- nfCurrentKeyStatus[nfKeyCode_PAD6] = false;
- break;
- case ALLEGRO_KEY_PAD_7:
- nfPreviousKeyStatus[nfKeyCode_PAD7] = nfCurrentKeyStatus[nfKeyCode_PAD7];
- nfCurrentKeyStatus[nfKeyCode_PAD7] = false;
- break;
- case ALLEGRO_KEY_PAD_8:
- nfPreviousKeyStatus[nfKeyCode_PAD8] = nfCurrentKeyStatus[nfKeyCode_PAD8];
- nfCurrentKeyStatus[nfKeyCode_PAD8] = false;
- break;
- case ALLEGRO_KEY_PAD_9:
- nfPreviousKeyStatus[nfKeyCode_PAD9] = nfCurrentKeyStatus[nfKeyCode_PAD9];
- nfCurrentKeyStatus[nfKeyCode_PAD9] = false;
- break;
- case ALLEGRO_KEY_F1:
- nfPreviousKeyStatus[nfKeyCode_F1] = nfCurrentKeyStatus[nfKeyCode_F1];
- nfCurrentKeyStatus[nfKeyCode_F1] = false;
- break;
- case ALLEGRO_KEY_F2:
- nfPreviousKeyStatus[nfKeyCode_F2] = nfCurrentKeyStatus[nfKeyCode_F2];
- nfCurrentKeyStatus[nfKeyCode_F2] = false;
- break;
- case ALLEGRO_KEY_F3:
- nfPreviousKeyStatus[nfKeyCode_F3] = nfCurrentKeyStatus[nfKeyCode_F3];
- nfCurrentKeyStatus[nfKeyCode_F3] = false;
- break;
- case ALLEGRO_KEY_F4:
- nfPreviousKeyStatus[nfKeyCode_F4] = nfCurrentKeyStatus[nfKeyCode_F4];
- nfCurrentKeyStatus[nfKeyCode_F4] = false;
- break;
- case ALLEGRO_KEY_F5:
- nfPreviousKeyStatus[nfKeyCode_F5] = nfCurrentKeyStatus[nfKeyCode_F5];
- nfCurrentKeyStatus[nfKeyCode_F5] = false;
- break;
- case ALLEGRO_KEY_F6:
- nfPreviousKeyStatus[nfKeyCode_F6] = nfCurrentKeyStatus[nfKeyCode_F6];
- nfCurrentKeyStatus[nfKeyCode_F6] = false;
- break;
- case ALLEGRO_KEY_F7:
- nfPreviousKeyStatus[nfKeyCode_F7] = nfCurrentKeyStatus[nfKeyCode_F7];
- nfCurrentKeyStatus[nfKeyCode_F7] = false;
- break;
- case ALLEGRO_KEY_F8:
- nfPreviousKeyStatus[nfKeyCode_F8] = nfCurrentKeyStatus[nfKeyCode_F8];
- nfCurrentKeyStatus[nfKeyCode_F8] = false;
- break;
- case ALLEGRO_KEY_F9:
- nfPreviousKeyStatus[nfKeyCode_F9] = nfCurrentKeyStatus[nfKeyCode_F9];
- nfCurrentKeyStatus[nfKeyCode_F9] = false;
- break;
- case ALLEGRO_KEY_F10:
- nfPreviousKeyStatus[nfKeyCode_F10] = nfCurrentKeyStatus[nfKeyCode_F10];
- nfCurrentKeyStatus[nfKeyCode_F10] = false;
- break;
- case ALLEGRO_KEY_F11:
- nfPreviousKeyStatus[nfKeyCode_F11] = nfCurrentKeyStatus[nfKeyCode_F11];
- nfCurrentKeyStatus[nfKeyCode_F11] = false;
- if (display.f11SwitchWindowMode) {
- if (nfPreviousKeyStatus[nfKeyCode_F11]) {
- if (display.isFullscreen) {
- al_set_new_display_flags(ALLEGRO_WINDOWED);
- al_destroy_display(display.display);
- display.display = al_create_display(display.windowedWidth, display.windowedHeight);
- display.isFullscreen = false;
- display.width = display.windowedWidth;
- display.height = display.windowedHeight;
- al_set_window_title(display.display, display.title.c_str());
- al_register_event_source(display.eventQueue, al_get_display_event_source(display.display));
- if (display.cursorVisible) {
- al_show_mouse_cursor(display.display);
- } else {
- al_hide_mouse_cursor(display.display);
- }
- } else {
- al_set_new_display_flags(ALLEGRO_FULLSCREEN);
- al_destroy_display(display.display);
- display.display = al_create_display(display.fullscreenWidth, display.fullscreenHeight);
- display.isFullscreen = true;
- display.width = display.fullscreenWidth;
- display.height = display.fullscreenHeight;
- al_set_window_title(display.display, display.title.c_str());
- al_register_event_source(display.eventQueue, al_get_display_event_source(display.display));
- if (display.cursorVisible) {
- al_show_mouse_cursor(display.display);
- } else {
- al_hide_mouse_cursor(display.display);
- }
- }
- }
- }
- break;
- case ALLEGRO_KEY_F12:
- nfPreviousKeyStatus[nfKeyCode_F12] = nfCurrentKeyStatus[nfKeyCode_F12];
- nfCurrentKeyStatus[nfKeyCode_F12] = false;
- break;
- case ALLEGRO_KEY_ESCAPE:
- nfPreviousKeyStatus[nfKeyCode_ESCAPE] = nfCurrentKeyStatus[nfKeyCode_ESCAPE];
- nfCurrentKeyStatus[nfKeyCode_ESCAPE] = false;
- if (display.escExit) {
- if (nfPreviousKeyStatus[nfKeyCode_ESCAPE]) {
- display.doExit = true;
- }
- }
- break;
- case ALLEGRO_KEY_TILDE:
- nfPreviousKeyStatus[nfKeyCode_TILDE] = nfCurrentKeyStatus[nfKeyCode_TILDE];
- nfCurrentKeyStatus[nfKeyCode_TILDE] = false;
- break;
- case ALLEGRO_KEY_MINUS:
- nfPreviousKeyStatus[nfKeyCode_MINUS] = nfCurrentKeyStatus[nfKeyCode_MINUS];
- nfCurrentKeyStatus[nfKeyCode_MINUS] = false;
- break;
- case ALLEGRO_KEY_EQUALS:
- nfPreviousKeyStatus[nfKeyCode_EQUALS] = nfCurrentKeyStatus[nfKeyCode_EQUALS];
- nfCurrentKeyStatus[nfKeyCode_EQUALS] = false;
- break;
- case ALLEGRO_KEY_BACKSPACE:
- nfPreviousKeyStatus[nfKeyCode_BACKSPACE] = nfCurrentKeyStatus[nfKeyCode_BACKSPACE];
- nfCurrentKeyStatus[nfKeyCode_BACKSPACE] = false;
- break;
- case ALLEGRO_KEY_TAB:
- nfPreviousKeyStatus[nfKeyCode_TAB] = nfCurrentKeyStatus[nfKeyCode_TAB];
- nfCurrentKeyStatus[nfKeyCode_TAB] = false;
- break;
- case ALLEGRO_KEY_OPENBRACE:
- nfPreviousKeyStatus[nfKeyCode_OPENBRACE] = nfCurrentKeyStatus[nfKeyCode_OPENBRACE];
- nfCurrentKeyStatus[nfKeyCode_OPENBRACE] = false;
- break;
- case ALLEGRO_KEY_CLOSEBRACE:
- nfPreviousKeyStatus[nfKeyCode_CLOSEBRACE] = nfCurrentKeyStatus[nfKeyCode_CLOSEBRACE];
- nfCurrentKeyStatus[nfKeyCode_CLOSEBRACE] = false;
- break;
- case ALLEGRO_KEY_ENTER:
- nfPreviousKeyStatus[nfKeyCode_ENTER] = nfCurrentKeyStatus[nfKeyCode_ENTER];
- nfCurrentKeyStatus[nfKeyCode_ENTER] = false;
- break;
- case ALLEGRO_KEY_SEMICOLON:
- nfPreviousKeyStatus[nfKeyCode_SEMICOLON] = nfCurrentKeyStatus[nfKeyCode_SEMICOLON];
- nfCurrentKeyStatus[nfKeyCode_SEMICOLON] = false;
- break;
- case ALLEGRO_KEY_QUOTE:
- nfPreviousKeyStatus[nfKeyCode_QUOTE] = nfCurrentKeyStatus[nfKeyCode_QUOTE];
- nfCurrentKeyStatus[nfKeyCode_QUOTE] = false;
- break;
- case ALLEGRO_KEY_BACKSLASH:
- nfPreviousKeyStatus[nfKeyCode_BACKSLASH] = nfCurrentKeyStatus[nfKeyCode_BACKSLASH];
- nfCurrentKeyStatus[nfKeyCode_BACKSLASH] = false;
- break;
- case ALLEGRO_KEY_BACKSLASH2:
- nfPreviousKeyStatus[nfKeyCode_BACKSLASH2] = nfCurrentKeyStatus[nfKeyCode_BACKSLASH2];
- nfCurrentKeyStatus[nfKeyCode_BACKSLASH2] = false;
- break;
- case ALLEGRO_KEY_COMMA:
- nfPreviousKeyStatus[nfKeyCode_COMMA] = nfCurrentKeyStatus[nfKeyCode_COMMA];
- nfCurrentKeyStatus[nfKeyCode_COMMA] = false;
- break;
- case ALLEGRO_KEY_FULLSTOP:
- nfPreviousKeyStatus[nfKeyCode_FULLSTOP] = nfCurrentKeyStatus[nfKeyCode_FULLSTOP];
- nfCurrentKeyStatus[nfKeyCode_FULLSTOP] = false;
- break;
- case ALLEGRO_KEY_SLASH:
- nfPreviousKeyStatus[nfKeyCode_SLASH] = nfCurrentKeyStatus[nfKeyCode_SLASH];
- nfCurrentKeyStatus[nfKeyCode_SLASH] = false;
- break;
- case ALLEGRO_KEY_SPACE:
- nfPreviousKeyStatus[nfKeyCode_SPACE] = nfCurrentKeyStatus[nfKeyCode_SPACE];
- nfCurrentKeyStatus[nfKeyCode_SPACE] = false;
- break;
- case ALLEGRO_KEY_INSERT:
- nfPreviousKeyStatus[nfKeyCode_INSERT] = nfCurrentKeyStatus[nfKeyCode_INSERT];
- nfCurrentKeyStatus[nfKeyCode_INSERT] = false;
- break;
- case ALLEGRO_KEY_DELETE:
- nfPreviousKeyStatus[nfKeyCode_DELETE] = nfCurrentKeyStatus[nfKeyCode_DELETE];
- nfCurrentKeyStatus[nfKeyCode_DELETE] = false;
- break;
- case ALLEGRO_KEY_HOME:
- nfPreviousKeyStatus[nfKeyCode_HOME] = nfCurrentKeyStatus[nfKeyCode_HOME];
- nfCurrentKeyStatus[nfKeyCode_HOME] = false;
- break;
- case ALLEGRO_KEY_END:
- nfPreviousKeyStatus[nfKeyCode_END] = nfCurrentKeyStatus[nfKeyCode_END];
- nfCurrentKeyStatus[nfKeyCode_END] = false;
- break;
- case ALLEGRO_KEY_PGUP:
- nfPreviousKeyStatus[nfKeyCode_PAGEUP] = nfCurrentKeyStatus[nfKeyCode_PAGEUP];
- nfCurrentKeyStatus[nfKeyCode_PAGEUP] = false;
- break;
- case ALLEGRO_KEY_PGDN:
- nfPreviousKeyStatus[nfKeyCode_PAGEDOWN] = nfCurrentKeyStatus[nfKeyCode_PAGEDOWN];
- nfCurrentKeyStatus[nfKeyCode_PAGEDOWN] = false;
- break;
- case ALLEGRO_KEY_LEFT:
- nfPreviousKeyStatus[nfKeyCode_LEFT] = nfCurrentKeyStatus[nfKeyCode_LEFT];
- nfCurrentKeyStatus[nfKeyCode_LEFT] = false;
- break;
- case ALLEGRO_KEY_RIGHT:
- nfPreviousKeyStatus[nfKeyCode_RIGHT] = nfCurrentKeyStatus[nfKeyCode_RIGHT];
- nfCurrentKeyStatus[nfKeyCode_RIGHT] = false;
- break;
- case ALLEGRO_KEY_UP:
- nfPreviousKeyStatus[nfKeyCode_UP] = nfCurrentKeyStatus[nfKeyCode_UP];
- nfCurrentKeyStatus[nfKeyCode_UP] = false;
- break;
- case ALLEGRO_KEY_DOWN:
- nfPreviousKeyStatus[nfKeyCode_DOWN] = nfCurrentKeyStatus[nfKeyCode_DOWN];
- nfCurrentKeyStatus[nfKeyCode_DOWN] = false;
- break;
- case ALLEGRO_KEY_PAD_SLASH:
- nfPreviousKeyStatus[nfKeyCode_PADSLASH] = nfCurrentKeyStatus[nfKeyCode_PADSLASH];
- nfCurrentKeyStatus[nfKeyCode_PADSLASH] = false;
- break;
- case ALLEGRO_KEY_PAD_ASTERISK:
- nfPreviousKeyStatus[nfKeyCode_PADASTERISK] = nfCurrentKeyStatus[nfKeyCode_PADASTERISK];
- nfCurrentKeyStatus[nfKeyCode_PADASTERISK] = false;
- break;
- case ALLEGRO_KEY_PAD_MINUS:
- nfPreviousKeyStatus[nfKeyCode_PADMINUS] = nfCurrentKeyStatus[nfKeyCode_PADMINUS];
- nfCurrentKeyStatus[nfKeyCode_PADMINUS] = false;
- break;
- case ALLEGRO_KEY_PAD_PLUS:
- nfPreviousKeyStatus[nfKeyCode_PADPLUS] = nfCurrentKeyStatus[nfKeyCode_PADPLUS];
- nfCurrentKeyStatus[nfKeyCode_PADPLUS] = false;
- break;
- case ALLEGRO_KEY_PAD_DELETE:
- nfPreviousKeyStatus[nfKeyCode_PADDELETE] = nfCurrentKeyStatus[nfKeyCode_PADDELETE];
- nfCurrentKeyStatus[nfKeyCode_PADDELETE] = false;
- break;
- case ALLEGRO_KEY_PAD_ENTER:
- nfPreviousKeyStatus[nfKeyCode_PADENTER] = nfCurrentKeyStatus[nfKeyCode_PADENTER];
- nfCurrentKeyStatus[nfKeyCode_PADENTER] = false;
- break;
- case ALLEGRO_KEY_PRINTSCREEN:
- nfPreviousKeyStatus[nfKeyCode_PRINTSCREEN] = nfCurrentKeyStatus[nfKeyCode_PRINTSCREEN];
- nfCurrentKeyStatus[nfKeyCode_PRINTSCREEN] = false;
- break;
- case ALLEGRO_KEY_PAUSE:
- nfPreviousKeyStatus[nfKeyCode_PAUSE] = nfCurrentKeyStatus[nfKeyCode_PAUSE];
- nfCurrentKeyStatus[nfKeyCode_PAUSE] = false;
- break;
- case ALLEGRO_KEY_ABNT_C1:
- nfPreviousKeyStatus[nfKeyCode_ABNTC1] = nfCurrentKeyStatus[nfKeyCode_ABNTC1];
- nfCurrentKeyStatus[nfKeyCode_ABNTC1] = false;
- break;
- case ALLEGRO_KEY_YEN:
- nfPreviousKeyStatus[nfKeyCode_YEN] = nfCurrentKeyStatus[nfKeyCode_YEN];
- nfCurrentKeyStatus[nfKeyCode_YEN] = false;
- break;
- case ALLEGRO_KEY_KANA:
- nfPreviousKeyStatus[nfKeyCode_KANA] = nfCurrentKeyStatus[nfKeyCode_KANA];
- nfCurrentKeyStatus[nfKeyCode_KANA] = false;
- break;
- case ALLEGRO_KEY_CONVERT:
- nfPreviousKeyStatus[nfKeyCode_CONVERT] = nfCurrentKeyStatus[nfKeyCode_CONVERT];
- nfCurrentKeyStatus[nfKeyCode_CONVERT] = false;
- break;
- case ALLEGRO_KEY_NOCONVERT:
- nfPreviousKeyStatus[nfKeyCode_NOCONVERT] = nfCurrentKeyStatus[nfKeyCode_NOCONVERT];
- nfCurrentKeyStatus[nfKeyCode_NOCONVERT] = false;
- break;
- case ALLEGRO_KEY_AT:
- nfPreviousKeyStatus[nfKeyCode_AT] = nfCurrentKeyStatus[nfKeyCode_AT];
- nfCurrentKeyStatus[nfKeyCode_AT] = false;
- break;
- case ALLEGRO_KEY_CIRCUMFLEX:
- nfPreviousKeyStatus[nfKeyCode_CIRCUMFLEX] = nfCurrentKeyStatus[nfKeyCode_CIRCUMFLEX];
- nfCurrentKeyStatus[nfKeyCode_CIRCUMFLEX] = false;
- break;
- case ALLEGRO_KEY_COLON2:
- nfPreviousKeyStatus[nfKeyCode_COLON2] = nfCurrentKeyStatus[nfKeyCode_COLON2];
- nfCurrentKeyStatus[nfKeyCode_COLON2] = false;
- break;
- case ALLEGRO_KEY_KANJI:
- nfPreviousKeyStatus[nfKeyCode_KANJI] = nfCurrentKeyStatus[nfKeyCode_KANJI];
- nfCurrentKeyStatus[nfKeyCode_KANJI] = false;
- break;
- case ALLEGRO_KEY_LSHIFT:
- nfPreviousKeyStatus[nfKeyCode_LEFTSHIFT] = nfCurrentKeyStatus[nfKeyCode_LEFTSHIFT];
- nfCurrentKeyStatus[nfKeyCode_LEFTSHIFT] = false;
- break;
- case ALLEGRO_KEY_RSHIFT:
- nfPreviousKeyStatus[nfKeyCode_RIGHTSHIFT] = nfCurrentKeyStatus[nfKeyCode_RIGHTSHIFT];
- nfCurrentKeyStatus[nfKeyCode_RIGHTSHIFT] = false;
- break;
- case ALLEGRO_KEY_LCTRL:
- nfPreviousKeyStatus[nfKeyCode_LEFTCONTROL] = nfCurrentKeyStatus[nfKeyCode_LEFTCONTROL];
- nfCurrentKeyStatus[nfKeyCode_LEFTCONTROL] = false;
- break;
- case ALLEGRO_KEY_RCTRL:
- nfPreviousKeyStatus[nfKeyCode_RIGHTCONTROL] = nfCurrentKeyStatus[nfKeyCode_RIGHTCONTROL];
- nfCurrentKeyStatus[nfKeyCode_RIGHTCONTROL] = false;
- break;
- case ALLEGRO_KEY_ALT:
- nfPreviousKeyStatus[nfKeyCode_ALT] = nfCurrentKeyStatus[nfKeyCode_ALT];
- nfCurrentKeyStatus[nfKeyCode_ALT] = false;
- break;
- case ALLEGRO_KEY_ALTGR:
- nfPreviousKeyStatus[nfKeyCode_ALTGR] = nfCurrentKeyStatus[nfKeyCode_ALTGR];
- nfCurrentKeyStatus[nfKeyCode_ALTGR] = false;
- break;
- case ALLEGRO_KEY_LWIN:
- nfPreviousKeyStatus[nfKeyCode_LEFTWINDOWS] = nfCurrentKeyStatus[nfKeyCode_LEFTWINDOWS];
- nfCurrentKeyStatus[nfKeyCode_LEFTWINDOWS] = false;
- break;
- case ALLEGRO_KEY_RWIN:
- nfPreviousKeyStatus[nfKeyCode_RIGHTWINDOWS] = nfCurrentKeyStatus[nfKeyCode_RIGHTWINDOWS];
- nfCurrentKeyStatus[nfKeyCode_RIGHTWINDOWS] = false;
- break;
- case ALLEGRO_KEY_MENU:
- nfPreviousKeyStatus[nfKeyCode_MENU] = nfCurrentKeyStatus[nfKeyCode_MENU];
- nfCurrentKeyStatus[nfKeyCode_MENU] = false;
- break;
- case ALLEGRO_KEY_SCROLLLOCK:
- nfPreviousKeyStatus[nfKeyCode_SCROLLLOCK] = nfCurrentKeyStatus[nfKeyCode_SCROLLLOCK];
- nfCurrentKeyStatus[nfKeyCode_SCROLLLOCK] = false;
- break;
- case ALLEGRO_KEY_NUMLOCK:
- nfPreviousKeyStatus[nfKeyCode_NUMLOCK] = nfCurrentKeyStatus[nfKeyCode_NUMLOCK];
- nfCurrentKeyStatus[nfKeyCode_NUMLOCK] = false;
- break;
- case ALLEGRO_KEY_CAPSLOCK:
- nfPreviousKeyStatus[nfKeyCode_CAPSLOCK] = nfCurrentKeyStatus[nfKeyCode_CAPSLOCK];
- nfCurrentKeyStatus[nfKeyCode_CAPSLOCK] = false;
- break;
- case ALLEGRO_KEY_PAD_EQUALS:
- nfPreviousKeyStatus[nfKeyCode_PADEQUALS] = nfCurrentKeyStatus[nfKeyCode_PADEQUALS];
- nfCurrentKeyStatus[nfKeyCode_PADEQUALS] = false;
- break;
- case ALLEGRO_KEY_BACKQUOTE:
- nfPreviousKeyStatus[nfKeyCode_BACKQUOTE] = nfCurrentKeyStatus[nfKeyCode_BACKQUOTE];
- nfCurrentKeyStatus[nfKeyCode_BACKQUOTE] = false;
- break;
- case ALLEGRO_KEY_SEMICOLON2:
- nfPreviousKeyStatus[nfKeyCode_SEMICOLON2] = nfCurrentKeyStatus[nfKeyCode_SEMICOLON2];
- nfCurrentKeyStatus[nfKeyCode_SEMICOLON2] = false;
- break;
- case ALLEGRO_KEY_COMMAND:
- nfPreviousKeyStatus[nfKeyCode_COMMAND] = nfCurrentKeyStatus[nfKeyCode_COMMAND];
- nfCurrentKeyStatus[nfKeyCode_COMMAND] = false;
- break;
- }
- }
- }
- void nfSyncReset() {
- al_flip_display();
- display.syncRedraw = false;
- al_clear_to_color(al_map_rgb(display.clearRed, display.clearGreen, display.clearBlue));
- }
- bool nfInit() {
- display.windowedWidth = NF_WINDOW_WIDTH;
- display.windowedHeight = NF_WINDOW_HEIGHT;
- display.isFullscreen = NF_START_FULLSCREEN;
- display.f11SwitchWindowMode = NF_F11_SWITCH_MODE;
- display.cursorVisible = NF_SHOW_CURSOR;
- display.escExit = NF_ESC_ENDGAME;
- display.title = NF_WINDOW_TITLE;
- display.clearRed = NF_CLEARCOLOR_RED;
- display.clearGreen = NF_CLEARCOLOR_GREEN;
- display.clearBlue = NF_CLEARCOLOR_BLUE;
- display.doExit = false;
- if (!al_init()) {
- cerr << "Neil's Framework: al_init() failed to initalise Allegro 5\n";
- return false;
- }
- if (!al_install_audio()) {
- cerr << "Neil's Framework: al_install_audio() failed to initalise Allegro 5 audio subsystem\n";
- return false;
- }
- al_init_font_addon();
- if (!al_init_ttf_addon()) {
- cerr << "Neil's Framework: al_init_ttf_addon() failed to initalise Allegro 5 TrueType font subsystem\n";
- return false;
- }
- if (!al_init_acodec_addon()) {
- cerr << "Neil's Framework: al_init_acodec_addon() failed to initalise Allegro 5 audio codecs addon\n";
- return false;
- }
- if (!al_install_mouse()) {
- cerr << "Neil's Framework: al_install_mouse() failed to initalise Allegro 5 mouse subsystem\n";
- return false;
- }
- if (!al_install_keyboard()) {
- cerr << "Neil's Framework: al_install_keyboard() failed to initalise Allegro 5 keyboard subsystem\n";
- return false;
- }
- if (!al_init_image_addon()) {
- cerr << "Neil's Framework: al_init_image_addon() failed to initalise Allegro 5 image subsystem\n";
- return false;
- }
- if (!al_init_primitives_addon()) {
- cerr << "Neil's Framework: al_init() failed to initalise Allegro 5 primitives subsystem\n";
- return false;
- }
- // Reserve the necessary amount of samples
- if (!al_reserve_samples(NF_RESERVED_SAMPLES)) {
- cerr << "Neil's Framework: al_reserve_samples(NF_RESERVED_SAMPLES) failed to reserve the necessary audio samples\n";
- return false;
- }
- display.fpsTimer = al_create_timer(1.0 / (float)NF_FPS);
- if (!display.fpsTimer) {
- cerr << "Neil's Framework: al_create_timer(1.0 / NF_FPS) failed to create fps-regulating ALLEGRO_TIMER\n";
- return false;
- }
- al_get_display_mode(al_get_num_display_modes() - 1, &display.fullscreenData);
- display.fullscreenWidth = display.fullscreenData.width;
- display.fullscreenHeight = display.fullscreenData.height;
- if (display.isFullscreen) {
- al_set_new_display_flags(ALLEGRO_FULLSCREEN);
- display.width = display.fullscreenWidth;
- display.height = display.fullscreenHeight;
- display.display = al_create_display(display.width, display.height);
- if (!display.display) {
- cerr << "Neil's Framework: al_create_display() failed to create the fullscreen display\n";
- return false;
- }
- } else {
- al_set_new_display_flags(ALLEGRO_WINDOWED);
- display.width = display.windowedWidth;
- display.height = display.windowedHeight;
- display.display = al_create_display(display.width, display.height);
- if (!display.display) {
- cerr << "Neil's Framework: al_create_display() failed to create the windowed display\n";
- return false;
- }
- }
- al_set_window_title(display.display, display.title.c_str());
- // Set it to the efficient blender mode
- al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA);
- if (display.cursorVisible) {
- if (!al_show_mouse_cursor(display.display)) {
- cerr << "Neil's Framework: al_show_mouse_cursor() failed to make the default mouse cursor opaque\n";
- return false;
- }
- } else {
- if (!al_hide_mouse_cursor(display.display)) {
- cerr << "Neil's Framework: al_hide_mouse_cursor() failed to make the default mouse cursor hidden\n";
- return false;
- }
- }
- display.eventQueue = al_create_event_queue();
- if (!display.eventQueue) {
- cerr << "Neil's Framework: al_create_event_queue() failed to create the Allegro 5 event queue\n";
- al_destroy_display(display.display);
- al_destroy_timer(display.fpsTimer);
- return false;
- }
- // Register eventQueue event sources
- al_register_event_source(display.eventQueue, al_get_display_event_source(display.display));
- al_register_event_source(display.eventQueue, al_get_timer_event_source(display.fpsTimer));
- al_register_event_source(display.eventQueue, al_get_keyboard_event_source());
- al_register_event_source(display.eventQueue, al_get_mouse_event_source());
- al_clear_to_color(al_map_rgb(display.clearRed, display.clearGreen, display.clearBlue));
- al_start_timer(display.fpsTimer); // Start the fps-regulating timer
- return true;
- }
- bool nfGetEventQueueEmpty() {
- if (!display.eventQueue) {
- return false;
- } else {
- if (al_is_event_queue_empty(display.eventQueue)) {
- return true;
- } else {
- return false;
- }
- }
- }
- bool nfDestroy() {
- return true;
- }
- bool nfImage::loadFromFile(string filename) {
- const char * fname = filename.c_str();
- bitmap = al_load_bitmap(fname);
- if (!bitmap) {
- cerr << "Neil's Framework: al_load_bitmap failed to load the image \"" << fname << "\"\n";
- return false;
- } else {
- width = al_get_bitmap_width(bitmap);
- height = al_get_bitmap_height(bitmap);
- return true;
- }
- }
- nfImage::nfImage() {
- bitmap = NULL;
- width = 0;
- height = 0;
- }
- nfImage::~nfImage() {
- if (bitmap) {
- al_destroy_bitmap(bitmap);
- }
- }
- nfSprite::nfSprite() {
- currentImage.bitmap = NULL;
- x = 0.0;
- y = 0.0;
- flippedHorizontal = false;
- flippedVertical = false;
- }
- nfSprite::~nfSprite() {
- if (currentImage.bitmap) {
- al_destroy_bitmap(currentImage.bitmap);
- }
- }
- void nfSprite::setImage(nfImage newImage) {
- currentImage = newImage;
- }
- void nfSprite::draw() {
- if (flippedHorizontal) {
- if (flippedVertical) {
- al_draw_bitmap(currentImage.bitmap, x, y, ALLEGRO_FLIP_HORIZONTAL | ALLEGRO_FLIP_VERTICAL);
- } else {
- al_draw_bitmap(currentImage.bitmap, x, y, ALLEGRO_FLIP_HORIZONTAL);
- }
- } else {
- if (flippedVertical) {
- al_draw_bitmap(currentImage.bitmap, x, y, ALLEGRO_FLIP_VERTICAL);
- } else {
- al_draw_bitmap(currentImage.bitmap, x, y, 0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement