Added MSVC debugging tool, discovered globals feature
This commit is contained in:
+30
-23
@@ -1,31 +1,38 @@
|
||||
import engine;
|
||||
import input;
|
||||
//A quirk of the setup is that anything defined in the root of `init.toy` becomes a global object
|
||||
//To resolve that, the configuration is inside a block scope
|
||||
{
|
||||
import engine;
|
||||
import input;
|
||||
|
||||
|
||||
//input settings, mapping SDL2's virtual keys to event names
|
||||
mapInputEventToKeyDown("character_up", "w"); //event, keysym
|
||||
mapInputEventToKeyDown("character_left", "a"); //event, keysym
|
||||
mapInputEventToKeyDown("character_down", "s"); //event, keysym
|
||||
mapInputEventToKeyDown("character_right", "d"); //event, keysym
|
||||
//input settings, mapping SDL2's virtual keys to event names
|
||||
mapInputEventToKeyDown("character_up", "w"); //event, keysym
|
||||
mapInputEventToKeyDown("character_left", "a"); //event, keysym
|
||||
mapInputEventToKeyDown("character_down", "s"); //event, keysym
|
||||
mapInputEventToKeyDown("character_right", "d"); //event, keysym
|
||||
|
||||
mapInputEventToKeyUp("character_up", "w"); //event, keysym
|
||||
mapInputEventToKeyUp("character_left", "a"); //event, keysym
|
||||
mapInputEventToKeyUp("character_down", "s"); //event, keysym
|
||||
mapInputEventToKeyUp("character_right", "d"); //event, keysym
|
||||
mapInputEventToKeyUp("character_up", "w"); //event, keysym
|
||||
mapInputEventToKeyUp("character_left", "a"); //event, keysym
|
||||
mapInputEventToKeyUp("character_down", "s"); //event, keysym
|
||||
mapInputEventToKeyUp("character_right", "d"); //event, keysym
|
||||
|
||||
mapInputEventToKeyDown("character_up", "up"); //event, keysym
|
||||
mapInputEventToKeyDown("character_left", "left"); //event, keysym
|
||||
mapInputEventToKeyDown("character_down", "down"); //event, keysym
|
||||
mapInputEventToKeyDown("character_right", "right"); //event, keysym
|
||||
mapInputEventToKeyDown("character_up", "up"); //event, keysym
|
||||
mapInputEventToKeyDown("character_left", "left"); //event, keysym
|
||||
mapInputEventToKeyDown("character_down", "down"); //event, keysym
|
||||
mapInputEventToKeyDown("character_right", "right"); //event, keysym
|
||||
|
||||
mapInputEventToKeyUp("character_up", "up"); //event, keysym
|
||||
mapInputEventToKeyUp("character_left", "left"); //event, keysym
|
||||
mapInputEventToKeyUp("character_down", "down"); //event, keysym
|
||||
mapInputEventToKeyUp("character_right", "right"); //event, keysym
|
||||
mapInputEventToKeyUp("character_up", "up"); //event, keysym
|
||||
mapInputEventToKeyUp("character_left", "left"); //event, keysym
|
||||
mapInputEventToKeyUp("character_down", "down"); //event, keysym
|
||||
mapInputEventToKeyUp("character_right", "right"); //event, keysym
|
||||
|
||||
|
||||
//this function must always be called, or the engine won't run
|
||||
initWindow("Airport Game", 1080, 720, false);
|
||||
//this function must always be called, or the engine won't run
|
||||
initWindow("Airport Game", 1080, 720, false);
|
||||
|
||||
//kick off the logic of the scene graph
|
||||
loadRootNode("scripts:/scene.toy");
|
||||
}
|
||||
|
||||
//Globals go here
|
||||
|
||||
//kick off the logic of the scene graph
|
||||
loadRootNode("scripts:/scene.toy");
|
||||
|
||||
@@ -24,12 +24,15 @@
|
||||
#include <SDL_image.h>
|
||||
|
||||
#include <windows.h>
|
||||
#include <crtdbg.h>
|
||||
|
||||
#ifndef BOX_EXPORT
|
||||
#define BOX_API __declspec(dllimport)
|
||||
#else
|
||||
#define BOX_API __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
//TODO: figure out the sleep issue
|
||||
#define sleep Sleep
|
||||
|
||||
#else
|
||||
|
||||
+2
-2
@@ -70,7 +70,7 @@ void Box_initEngine() {
|
||||
const unsigned char* tb = Toy_compileString((const char*)source, &size);
|
||||
free((void*)source);
|
||||
|
||||
//TODO: inner-interpreter
|
||||
//A quirk of the setup is that anything defined in `init.toy` becomes a global object
|
||||
Toy_runInterpreter(&engine.interpreter, tb, size);
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ static void execLoadRootNode() {
|
||||
Box_callEngineNode(engine.rootNode, &inner, "onLoad", NULL);
|
||||
|
||||
//manual cleanup
|
||||
inner.scope = Toy_popScope(inner.scope);
|
||||
Toy_popScope(inner.scope);
|
||||
Toy_freeLiteralArray(&inner.stack);
|
||||
Toy_freeLiteralArray(&inner.literalCache);
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
#include "lib_runner.h"
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
//debugging tools
|
||||
#ifdef _DEBUG
|
||||
// Memory Leak Detection during Debug Builds (MSVC only)
|
||||
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
|
||||
#endif//win32 && debug
|
||||
|
||||
//the drive system uses a LiteralDictionary, which must be initialized with this
|
||||
Toy_initDriveDictionary();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user