diff --git a/.gitignore b/.gitignore index 006b849..2a6d237 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,11 @@ /.idea # Exclude temporary / build / auto-generated directories -/*Remote* +/*Release* /*Debug* /*build* /*tmp* *generated* /docs +/vgcore* diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c754ee..135f85c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,7 @@ include_directories(box2d/include/box2d) target_link_libraries(Capstone box2d) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OXYGINE_CXX_FLAGS} -fconcepts -w") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") if (EMSCRIPTEN) SET(CMAKE_EXECUTABLE_SUFFIX ".html") diff --git a/data/architecture.mdj b/data/architecture.mdj index eb3b53f..40cc3c1 100644 --- a/data/architecture.mdj +++ b/data/architecture.mdj @@ -48,8 +48,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, - "top": 192, + "left": 672, + "top": -128, "height": 13 }, { @@ -59,9 +59,9 @@ "$ref": "AAAAAAGAdKNUSMAwEXM=" }, "font": "Arial;13;3", - "left": 61, - "top": 199, - "width": 135, + "left": 469, + "top": 39, + "width": 87, "height": 13, "text": "Game" }, @@ -73,8 +73,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, - "top": 192, + "left": 672, + "top": -128, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -87,16 +87,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -144, - "top": 192, + "left": 672, + "top": -128, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 56, - "top": 192, - "width": 145, + "left": 464, + "top": 32, + "width": 97, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAdKNUSMAx8H8=" @@ -132,8 +132,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 61, - "top": 334, + "left": 877, + "top": 14, "width": 89.603515625, "height": 13, "underline": true, @@ -142,9 +142,9 @@ } ], "font": "Arial;13;0", - "left": 56, - "top": 217, - "width": 145, + "left": 464, + "top": 57, + "width": 97, "height": 10 }, { @@ -168,8 +168,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 61, - "top": 344, + "left": 877, + "top": 24, "width": 89.603515625, "height": 13, "underline": true, @@ -187,8 +187,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 61, - "top": 346, + "left": 877, + "top": 26, "width": 89.603515625, "height": 13, "underline": true, @@ -206,8 +206,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 61, - "top": 346, + "left": 877, + "top": 26, "width": 89.603515625, "height": 13, "underline": true, @@ -216,9 +216,9 @@ } ], "font": "Arial;13;0", - "left": 56, - "top": 227, - "width": 145, + "left": 464, + "top": 67, + "width": 97, "height": 10 }, { @@ -232,8 +232,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -56, - "top": 240, + "left": 352, + "top": 80, "width": 10, "height": 10 }, @@ -248,17 +248,17 @@ }, "visible": false, "font": "Arial;13;0", - "left": -56, - "top": 240, + "left": 352, + "top": 80, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 56, - "top": 192, - "width": 145, + "left": 464, + "top": 32, + "width": 97, "height": 45, "nameCompartment": { "$ref": "AAAAAAGAdKNUSMAwEXM=" @@ -304,8 +304,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 112, - "top": -304, + "left": 512, + "top": -272, "height": 13 }, { @@ -315,9 +315,9 @@ "$ref": "AAAAAAGAdKqjCcCqZS4=" }, "font": "Arial;13;3", - "left": 237, - "top": 199, - "width": 135, + "left": 469, + "top": 215, + "width": 87, "height": 13, "text": "Scene" }, @@ -329,8 +329,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 112, - "top": -304, + "left": 512, + "top": -272, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -343,16 +343,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 112, - "top": -304, + "left": 512, + "top": -272, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 232, - "top": 192, - "width": 145, + "left": 464, + "top": 208, + "width": 97, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAdKqjCcCrp0Q=" @@ -377,9 +377,9 @@ "$ref": "AAAAAAGAdKqjCcCnSMU=" }, "font": "Arial;13;0", - "left": 232, - "top": 217, - "width": 145, + "left": 464, + "top": 233, + "width": 97, "height": 10 }, { @@ -403,8 +403,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 269, - "top": 320, + "left": 669, + "top": 352, "width": 95, "height": 13, "text": "+Scene()", @@ -412,9 +412,9 @@ } ], "font": "Arial;13;0", - "left": 232, - "top": 227, - "width": 145, + "left": 464, + "top": 243, + "width": 97, "height": 10 }, { @@ -428,8 +428,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 72, - "top": -8, + "left": 272, + "top": 8, "width": 10, "height": 10 }, @@ -444,17 +444,17 @@ }, "visible": false, "font": "Arial;13;0", - "left": 72, - "top": -8, + "left": 272, + "top": 8, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 232, - "top": 192, - "width": 145, + "left": 464, + "top": 208, + "width": 97, "height": 45, "nameCompartment": { "$ref": "AAAAAAGAdKqjCcCqZS4=" @@ -501,8 +501,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 368, - "top": -748, + "left": 320, + "top": -652, "height": 13 }, { @@ -513,9 +513,9 @@ }, "fillColor": "#ffeeee", "font": "Arial;13;1", - "left": 429, - "top": 87, - "width": 135, + "left": 405, + "top": 135, + "width": 87, "height": 13, "text": "MenuScene" }, @@ -528,8 +528,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 368, - "top": -748, + "left": 320, + "top": -652, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -543,17 +543,17 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 368, - "top": -748, + "left": 320, + "top": -652, "height": 13, "horizontalAlignment": 1 } ], "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 424, - "top": 80, - "width": 145, + "left": 400, + "top": 128, + "width": 97, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAdKulX8DYZzw=" @@ -579,9 +579,9 @@ }, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 424, - "top": 105, - "width": 145, + "left": 400, + "top": 153, + "width": 97, "height": 10 }, { @@ -606,8 +606,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 477, - "top": 160, + "left": 429, + "top": 256, "width": 178.1279296875, "height": 13, "text": "+MenuScene()", @@ -625,8 +625,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 477, - "top": 162, + "left": 429, + "top": 258, "width": 178.1279296875, "height": 13, "text": "+onNewGame(Event * event)", @@ -644,8 +644,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 477, - "top": 162, + "left": 429, + "top": 258, "width": 178.1279296875, "height": 13, "text": "+onRequestExit(Event * event)", @@ -654,9 +654,9 @@ ], "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 424, - "top": 115, - "width": 145, + "left": 400, + "top": 163, + "width": 97, "height": 10 }, { @@ -671,8 +671,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 200, - "top": -230, + "left": 176, + "top": -182, "width": 10, "height": 10 }, @@ -688,8 +688,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 200, - "top": -230, + "left": 176, + "top": -182, "width": 10, "height": 10 } @@ -697,9 +697,9 @@ "fillColor": "#ffeeee", "font": "Arial;13;0", "containerChangeable": true, - "left": 424, - "top": 80, - "width": 145, + "left": 400, + "top": 128, + "width": 97, "height": 45, "nameCompartment": { "$ref": "AAAAAAGAdKulX8DXllk=" @@ -738,8 +738,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 407, - "top": 164, + "left": 491, + "top": 174, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -759,8 +759,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 415, - "top": 177, + "left": 503, + "top": 164, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -780,8 +780,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 392, - "top": 139, + "left": 468, + "top": 193, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -799,7 +799,7 @@ "$ref": "AAAAAAGAdKulX8DWFtU=" }, "lineStyle": 1, - "points": "457:125;343:191", + "points": "466:173;494:207", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAdKule8EAmoE=" @@ -840,8 +840,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 245.744140625, - "top": -208, + "left": 373.744140625, + "top": -624, "height": 13 }, { @@ -852,9 +852,9 @@ }, "fillColor": "#eeeeff", "font": "Arial;13;1", - "left": 421, - "top": 343, - "width": 135, + "left": 533, + "top": 135, + "width": 87, "height": 13, "text": "GameScene" }, @@ -867,8 +867,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 245.744140625, - "top": -208, + "left": 373.744140625, + "top": -624, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -882,17 +882,17 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 245.744140625, - "top": -208, + "left": 373.744140625, + "top": -624, "height": 13, "horizontalAlignment": 1 } ], "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 416, - "top": 336, - "width": 145, + "left": 528, + "top": 128, + "width": 97, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAdK3F8sE2F5k=" @@ -929,8 +929,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 478, + "left": 589, + "top": 62, "width": 196.2060546875, "height": 13, "text": "-gameResources Resources", @@ -948,8 +948,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 480, + "left": 589, + "top": 64, "width": 196.2060546875, "height": 13, "text": "-rng HashedRNG", @@ -967,8 +967,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 480, + "left": 589, + "top": 64, "width": 196.2060546875, "height": 13, "text": "-softPause: bool", @@ -977,9 +977,9 @@ ], "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 416, - "top": 361, - "width": 145, + "left": 528, + "top": 153, + "width": 97, "height": 10 }, { @@ -1004,8 +1004,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 488, + "left": 589, + "top": 72, "width": 196.2060546875, "height": 13, "text": "+GameScene(int seed?)", @@ -1023,8 +1023,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 490, + "left": 589, + "top": 74, "width": 196.2060546875, "height": 13, "text": "+update(UpdateState const & us)", @@ -1042,8 +1042,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 490, + "left": 589, + "top": 74, "width": 196.2060546875, "height": 13, "text": "+onRestart(Event * event)", @@ -1061,8 +1061,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 490, + "left": 589, + "top": 74, "width": 196.2060546875, "height": 13, "text": "+onNewGame(Evente * event)", @@ -1080,8 +1080,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 490, + "left": 589, + "top": 74, "width": 196.2060546875, "height": 13, "text": "+onAbandon(Event * event)", @@ -1099,8 +1099,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 461, - "top": 535, + "left": 589, + "top": 119, "width": 196.2060546875, "height": 13, "text": "+onQuit(Event * event)", @@ -1109,9 +1109,9 @@ ], "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 416, - "top": 371, - "width": 145, + "left": 528, + "top": 163, + "width": 97, "height": 10 }, { @@ -1126,8 +1126,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 138.8720703125, - "top": 40, + "left": 202.8720703125, + "top": -168, "width": 10, "height": 10 }, @@ -1143,8 +1143,8 @@ "visible": false, "fillColor": "#eeeeff", "font": "Arial;13;0", - "left": 138.8720703125, - "top": 40, + "left": 202.8720703125, + "top": -168, "width": 10, "height": 10 } @@ -1152,9 +1152,9 @@ "fillColor": "#eeeeff", "font": "Arial;13;0", "containerChangeable": true, - "left": 416, - "top": 336, - "width": 145, + "left": 528, + "top": 128, + "width": 97, "height": 45, "nameCompartment": { "$ref": "AAAAAAGAdK3F8sE1mEs=" @@ -1193,8 +1193,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 386, - "top": 291, + "left": 555, + "top": 193, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -1214,8 +1214,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 377, - "top": 303, + "left": 567, + "top": 203, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -1235,8 +1235,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 405, - "top": 268, + "left": 532, + "top": 174, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -1254,7 +1254,7 @@ "$ref": "AAAAAAGAdK3F8sE0vfs=" }, "lineStyle": 1, - "points": "459:335;333:237", + "points": "558:173;530:207", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAdK3GBMFekU8=" @@ -1295,7 +1295,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "top": -448, + "left": -688, + "top": -192, "height": 13 }, { @@ -1306,9 +1307,9 @@ }, "fillColor": "#ffeeee", "font": "Arial;13;1", - "left": 653, - "top": 87, - "width": 135, + "left": 309, + "top": 215, + "width": 87, "height": 13, "text": "Dialog" }, @@ -1321,7 +1322,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "top": -448, + "left": -688, + "top": -192, "width": 73.67724609375, "height": 13, "text": "(from Model)" @@ -1335,16 +1337,17 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "top": -448, + "left": -688, + "top": -192, "height": 13, "horizontalAlignment": 1 } ], "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 648, - "top": 80, - "width": 145, + "left": 304, + "top": 208, + "width": 97, "height": 25, "stereotypeLabel": { "$ref": "AAAAAAGAdLJvIMHanwk=" @@ -1381,8 +1384,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 629, - "top": 78, + "left": -59, + "top": 334, "width": 297.34326171875, "height": 13, "underline": true, @@ -1401,8 +1404,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 629, - "top": 80, + "left": -59, + "top": 336, "width": 297.34326171875, "height": 13, "text": "-text: Text *", @@ -1420,8 +1423,8 @@ "visible": false, "fillColor": "#ffeeee", "font": "Arial;13;0", - "left": 629, - "top": 80, + "left": -59, + "top": 336, "width": 297.34326171875, "height": 13, "text": "-buttons: List