From d0381ce231d1516cae1450c4c25b687cc7ef8f5f Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 26 Jan 2024 10:56:13 +0100 Subject: [PATCH] added legacy code --- .gitignore | 13 + .gitmodules | 3 + CMakeLists.txt | 44 +++ IBMPlexMono-Regular.otf | Bin 0 -> 71272 bytes Inter-Regular.otf | Bin 0 -> 258992 bytes compile_flags.txt | 4 + easy-ecs/.gitignore | 56 +++ easy-ecs/CMakeLists.txt | 13 + easy-ecs/LICENSE | 339 ++++++++++++++++++ easy-ecs/README.md | 1 + easy-ecs/ecs.c | 770 ++++++++++++++++++++++++++++++++++++++++ easy-ecs/ecs.h | 138 +++++++ include/ecs.h | 138 +++++++ orb-pink-red.png | Bin 0 -> 16462 bytes ship-player.png | Bin 0 -> 6569 bytes ufo.png | Bin 0 -> 11420 bytes 16 files changed, 1519 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 100644 IBMPlexMono-Regular.otf create mode 100644 Inter-Regular.otf create mode 100644 compile_flags.txt create mode 100644 easy-ecs/.gitignore create mode 100644 easy-ecs/CMakeLists.txt create mode 100644 easy-ecs/LICENSE create mode 100644 easy-ecs/README.md create mode 100644 easy-ecs/ecs.c create mode 100644 easy-ecs/ecs.h create mode 100644 include/ecs.h create mode 100644 orb-pink-red.png create mode 100644 ship-player.png create mode 100644 ufo.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f97f833 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# build dirs +kdev/ +[Xx]code/ +[Dd]ebug/ +[Rr]elease/ +[Bb]in/ + +# build files +*.exe +*.out +*.o +*.a + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c3e00b4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "easy-ecs"] + path = easy-ecs + url = git@github.com:Scott-G-GD/easy-ecs.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..566623a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.17) + +project(engine) +project(game) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG") + +find_package(SDL2 REQUIRED) +find_package(SDL2_image REQUIRED) +find_package(SDL2_ttf REQUIRED) + +include_directories(SDL2 PRIVATE "${CMAKE_SOURCE_DIR}/src/engine" "${CMAKE_SOURCE_DIR}/include") + +if(APPLE) + include_directories("/opt/homebrew/include/") + link_directories("/opt/homebrew/lib/" "./lib/") +else() + link_directories("./lib/") +endif() + +file( + GLOB_RECURSE + GAME_SRC + "${CMAKE_SOURCE_DIR}/src/game/*.c" +) + +add_library(game STATIC ${GAME_SRC}) +set_target_properties(game PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib) + +target_link_libraries(game SDL2 SDL2_image SDL2_ttf ecs c m) + +file( + GLOB_RECURSE + ENGINE_SRC + "${CMAKE_SOURCE_DIR}/src/engine/*.c" +) + +add_executable(engine ${ENGINE_SRC}) +target_link_libraries(engine game SDL2 SDL2_image SDL2_ttf ecs c m) diff --git a/IBMPlexMono-Regular.otf b/IBMPlexMono-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..5e87de28f7887ab069ac833d840022d532dee22b GIT binary patch literal 71272 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 N?p}W-;h1~z+ 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 literal 0 HcmV?d00001 diff --git a/Inter-Regular.otf b/Inter-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..84e6a61c3c0f11fc8c88c9e7a8f6ed7f7bbc43b3 GIT binary patch literal 258992 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

-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 J>wTt%eg>tMGE@Kn literal 0 HcmV?d00001 diff --git a/compile_flags.txt b/compile_flags.txt new file mode 100644 index 0000000..23dd607 --- /dev/null +++ b/compile_flags.txt @@ -0,0 +1,4 @@ +-I +include +-I +src/engine diff --git a/easy-ecs/.gitignore b/easy-ecs/.gitignore new file mode 100644 index 0000000..ae83443 --- /dev/null +++ b/easy-ecs/.gitignore @@ -0,0 +1,56 @@ +[Bb]uild/ +[Dd]ebug/ +[Rr]elease/ + +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf diff --git a/easy-ecs/CMakeLists.txt b/easy-ecs/CMakeLists.txt new file mode 100644 index 0000000..3e0ee91 --- /dev/null +++ b/easy-ecs/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.17) + +project(ecs) + +file( + GLOB + SOURCE + "./*.c" +) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types") + +add_library(ecs ${SOURCE}) diff --git a/easy-ecs/LICENSE b/easy-ecs/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/easy-ecs/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/easy-ecs/README.md b/easy-ecs/README.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/easy-ecs/README.md @@ -0,0 +1 @@ + diff --git a/easy-ecs/ecs.c b/easy-ecs/ecs.c new file mode 100644 index 0000000..8a5f7fd --- /dev/null +++ b/easy-ecs/ecs.c @@ -0,0 +1,770 @@ +// +// ecs.c +// gl_project +// +// Created by Scott on 08/09/2022. +// + +#include "ecs.h" +#include +#include +#include +#include +#include + +typedef unsigned char BYTE; + +typedef struct ECSsystem { + ecsSystemFn fn; + ecsComponentQuery query; + int maxThreads; + int execOrder; +} ECSsystem; + +/** + * \brief Structure to represent a task the ECS needs to perform after systems finish running. + * \note Not every member is used by type and thus some might be able to be left uninitialized. + */ +typedef struct ecsTask { + enum ECS_TASKTYPE { + ECS_ENTITY_DESTROY, //! Uses .entity + ECS_COMPONENTS_DETACH, //! Uses .entity and .components.mask + ECS_SYSTEM_CREATE, //! Uses .system and .components + ECS_SYSTEM_DESTROY, //! Uses .system + } type; + + ecsEntityId entity; //! relevant entity id + ECSsystem system; //! relevant system function pointer + ecsComponentQuery components; //! relevant components +} ecsTask; + +typedef struct ECSentityData { + ecsEntityId id; + ecsComponentMask mask; +} ECSentityData; + +typedef struct ECScomponentType { + ecsComponentMask id; + size_t stride; + size_t componentSize; + size_t size; + void* begin; + pthread_mutex_t mutex; +} ECScomponentType; + +typedef struct ECScomponentList { + size_t size; + ECScomponentType* begin; + pthread_mutex_t mutex; +} ECScomponentList; + +typedef struct ECSentityList { + size_t size; + size_t nextValidId; + ECSentityData* begin; + pthread_mutex_t mutex; +} ECSentityList; + +typedef struct ECSsystemList { + size_t size; + ECSsystem* begin; + pthread_mutex_t mutex; +} ECSsystemList; + +typedef struct ECStaskQueue { + size_t size; + ecsTask* begin; + pthread_mutex_t mutex; +} ECStaskQueue; + +pthread_mutexattr_t ecsSharedMutexAttr; + +// forward declare helper functions +static inline int ecsResizeComponents(size_t size); +static inline int ecsResizeComponentType(ECScomponentType* type, size_t size); +static inline int ecsResizeEntities(size_t size); +static inline int ecsResizeSystems(size_t size); +static inline int ecsPushTaskStack(void); +static inline void ecsClearTasks(void); +static inline ECSentityData* ecsFindEntityData(ecsEntityId id); +static inline ECScomponentType* ecsFindComponentType(ecsComponentMask id); +static inline ECSsystem* ecsFindSystem(ecsSystemFn fn); +static inline void* ecsFindComponentFor(ECScomponentType* type, ecsEntityId id); +void ecsPushTask(ecsTask task); + + +ECSentityList ecsEntities; +ECScomponentList ecsComponents; +ECSsystemList ecsSystems; +ECStaskQueue ecsTasks; +int ecsIsInit = 0; + + +void ecsInit() +{ + assert(!ecsIsInit); + + pthread_mutexattr_settype(&ecsSharedMutexAttr, PTHREAD_MUTEX_RECURSIVE); + + ecsEntities.nextValidId = 1; + ecsEntities.begin = ecsComponents.begin = ecsSystems.begin = ecsTasks.begin = NULL; + + pthread_mutex_init(&ecsEntities.mutex, &ecsSharedMutexAttr); + pthread_mutex_init(&ecsComponents.mutex, &ecsSharedMutexAttr); + pthread_mutex_init(&ecsSystems.mutex, &ecsSharedMutexAttr); + pthread_mutex_init(&ecsTasks.mutex, &ecsSharedMutexAttr); + + ecsEntities.size = ecsComponents.size = ecsSystems.size = ecsTasks.size = 0; + + ecsIsInit = 1; +} + +void ecsTerminate() +{ + assert(ecsIsInit); + + if(ecsEntities.begin) free(ecsEntities.begin); + if(ecsSystems.begin) free(ecsSystems.begin); + if(ecsTasks.begin) free(ecsTasks.begin); + + pthread_mutex_destroy(&ecsSystems.mutex); + pthread_mutex_destroy(&ecsEntities.mutex); + pthread_mutex_destroy(&ecsTasks.mutex); + + if(ecsComponents.begin) + { + ECScomponentType* type; + for(size_t i = 0; i < ecsComponents.size; i++) + { + type = ecsComponents.begin + i; + if(type->begin) + free(type->begin); + + pthread_mutex_destroy(&type->mutex); + } + free(ecsComponents.begin); + } + + ecsIsInit = 0; +} + +ecsComponentMask ecsMakeComponentType(size_t stride) +{ + + // avoid going out of bounds on the bitmask + if (ecsComponents.size == sizeof(ecsComponentMask) * 8) return nocomponent; + + ecsComponentMask mask = (0x1ll << ecsComponents.size); // calculate component mask + + pthread_mutex_lock(&ecsComponents.mutex); + + // add an element to end of array + if(ecsResizeComponents(ecsComponents.size + 1)) + { + ECScomponentType ntype = (ECScomponentType) { // prepare specs of new component type + .size = 0, .begin = NULL, .id = mask, .stride = (stride + sizeof(ecsEntityId)), .componentSize = stride + }; + // initialize mutex + pthread_mutex_init(&ntype.mutex, &ecsSharedMutexAttr); + + // copy prepared component data + memmove(ecsComponents.begin + ecsComponents.size-1, &ntype, sizeof(ntype)); + } + else + { + mask = nocomponent; + } + + pthread_mutex_unlock(&ecsComponents.mutex); + + return mask; +} + +// +// COMPONENTS +// + +void ecsSortComponents(ECScomponentType* type) +{ + pthread_mutex_lock(&type->mutex); + + int swaps; + void* a; + void* b; + ecsEntityId enta; + ecsEntityId entb; + void* temp = malloc(type->stride); + + // linear sort + do { + swaps = 0; + for(size_t i = 1; i < type->size; ++i) + { + a = ((BYTE*)type->begin) + type->stride * (i-1); + b = ((BYTE*)type->begin) + type->stride * i; + enta = *(ecsEntityId*)a; + entb = *(ecsEntityId*)b; + + if(enta > entb) + { + swaps++; + memcpy(temp, b, type->stride); + memcpy(b, a, type->stride); + memcpy(a, temp, type->stride); + } + } + } while(swaps > 0); + + pthread_mutex_unlock(&type->mutex); +} + +void* ecsGetComponentPtr(ecsEntityId e, ecsComponentMask c) +{ + ECScomponentType* ctype = ecsFindComponentType(c); + + ecsEntityId* ptr = ecsFindComponentFor(ctype, e); + if(ptr == NULL) return NULL; // component for e, c combination does not exist + + return (void*)(ptr + 1); +} + +void ecsAttachComponent(ecsEntityId e, ecsComponentMask c) +{ + ECSentityData* entity = ecsFindEntityData(e); + ECScomponentType* ctype = ecsFindComponentType(c); + + if(ctype == NULL) return; // component type does not exist + if(entity == NULL) return; // no such entity + if(((entity->mask) & c) != 0) return; // component already exists + + pthread_mutex_lock(&ctype->mutex); + if(ecsResizeComponentType(ctype, ctype->size + 1)) + { + BYTE* eid = ((BYTE*)ctype->begin) + ((ctype->size-1) * ctype->stride); // get last item of the list as its entityId block + memset(eid, 0x0, ctype->stride); // zero new component + memcpy(eid, &e, sizeof(ecsEntityId)); // set entityId block + entity->mask |= c; // register that component was added to entity + ecsSortComponents(ctype); + } + pthread_mutex_unlock(&ctype->mutex); +} + +void ecsAttachComponents(ecsEntityId e, ecsComponentMask q) +{ + ecsComponentMask c; // single component mask + for(size_t i = 0; i < ecsComponents.size; i++) + { + c = (0x1ll << i); + if((q & c) != 0) // query contains this mask + ecsAttachComponent(e, c); + } +} + +void ecsDetachComponent(ecsEntityId e, ecsComponentMask c) +{ + ECScomponentType* ctype = ecsFindComponentType(c); + + if(ctype == NULL) return; // no such component type + + ECSentityData* entity = ecsFindEntityData(e); + + if(entity == NULL) return; // no such entity + if((entity->mask & c) == 0) return; // entity does not have component + + void* block = ecsFindComponentFor(ctype, e); + + if(block == NULL) return; // no component block for entity found + + pthread_mutex_lock(&ctype->mutex); + + uintptr_t lenafter = (uintptr_t)(((BYTE*)ctype->begin + ctype->size * ctype->stride) - (BYTE*)block); + lenafter -= ctype->stride; + // move last element into to-be-destroyed element + memmove(block, block + ctype->stride, lenafter); + + // shorten array by one stride + ecsResizeComponentType(ctype, (ctype->size)-1); + entity->mask &= ~c; + + pthread_mutex_unlock(&ctype->mutex); +} + +void ecsDetachComponents(ecsEntityId e, ecsComponentMask c) +{ ecsPushTask((ecsTask){.type=ECS_COMPONENTS_DETACH, .components={ .mask=c }, .entity=e}); } +void ecsTaskDetachComponents(ecsEntityId e, ecsComponentMask q) +{ + ecsComponentMask id; + for(size_t i = 0; i < ecsComponents.size; i++) + { + id = (0x1ll << i); + if((q & id) != 0) // query contains component type at i + ecsDetachComponent(e, id); + } +} + +// +// ENTITIES +// + +ecsEntityId ecsCreateEntity(ecsComponentMask components) +{ + // register an id that is unique for the runtime of the ecs + ecsEntityId id = ecsEntities.nextValidId; + ecsEntities.nextValidId++; + + // prepare values + ECSentityData entity = (ECSentityData) { + .mask = 0x0, .id = id + }; + + pthread_mutex_lock(&ecsEntities.mutex); + // resize entities list + if(ecsResizeEntities(ecsEntities.size + 1)) + { + // copy prepared values + memmove((ecsEntities.begin + ecsEntities.size - 1), &entity, sizeof(entity)); + + // attach requested components + ecsAttachComponents(id, components); + } + else + { + id = noentity; + } + + pthread_mutex_unlock(&ecsEntities.mutex); + + return id; +} + +ecsEntityId ecsGetComponentMask(ecsEntityId entity) +{ + ECSentityData* data = ecsFindEntityData(entity); + return data != NULL ? data->mask : nocomponent; +} + +int ecsValidEntity(ecsEntityId entity) +{ + return ecsFindEntityData(entity) != NULL; +} + +void ecsDestroyEntity(ecsEntityId e) +{ ecsPushTask((ecsTask){.type=ECS_ENTITY_DESTROY, .entity=e}); } +void ecsTaskDestroyEntity(ecsEntityId e) +{ + ECSentityData* data = ecsFindEntityData(e); + if(data == NULL) return; // no such entity + + // destroy all components owned by entity + ecsTaskDetachComponents(e, data->mask); + + // get the last element of the entities array + uintptr_t countAfter = (uintptr_t)((ecsEntities.begin + ecsEntities.size) - data); + assert(countAfter < ecsEntities.size); + // copy last into to-be-deleted entity + memmove(data, data+1, sizeof(ECSentityData) * countAfter); + + // resize + ecsResizeEntities(ecsEntities.size - 1); +} + +// +// SYSTEMS +// + +int matchQuery(ecsComponentQuery query, ecsComponentMask mask) +{ + if(query.comparison == ECS_QUERY_ANY) + return (mask & query.mask) != 0; + else if(query.comparison == ECS_QUERY_ALL) + return (mask & query.mask) == query.mask; + return 0; +} + +typedef struct ecsRunSystemArgs { + ecsSystemFn fn; + ecsEntityId* entities; + ecsComponentMask* components; + size_t count; + float deltaTime; +} ecsRunSystemArgs; + +void* ecsRunSystem(void* args) +{ + ecsRunSystemArgs* arg = args; + arg->fn(arg->entities, arg->components, arg->count, arg->deltaTime); + return NULL; +} + +void ecsRunSystems(float deltaTime) +{ + ECSsystem system; + ECSentityData entity; + size_t entityCount = ecsEntities.size; + + pthread_t* threads = NULL; + ecsRunSystemArgs* threadArgs = NULL; + + for(size_t i = 0; i < ecsSystems.size; ++i) + { + system = ecsSystems.begin[i]; + + // ECS_NOQUERY systems get run exactly once per ecsRunSystems call + // with entity and components arguments on NULL + // and count argument on 0 + if(system.query.comparison == ECS_NOQUERY) + { + system.fn(NULL, NULL, 0, deltaTime); + } + else + { + // look for all entities matching the query + // first allocate entity and component lists the size of the number of entities + ecsEntityId* entityList = malloc((entityCount + 1) * sizeof(ecsEntityId)); + ecsComponentMask* componentList = malloc((entityCount + 1) * sizeof(ecsComponentMask)); + assert(entityList != NULL); + assert(componentList != NULL); + + // then search for entities that match the query + size_t total = 0; + for(size_t j = 0; j < entityCount; ++j) + { + entity = ecsEntities.begin[j]; + if (matchQuery(system.query, entity.mask)) + { + assert(total < entityCount); + entityList[total] = entity.id; + componentList[total] = entity.mask; + total++; + } + } + + size_t threadCount = system.maxThreads; + if(threadCount > 0) + threadCount = threadCount > total ? total : threadCount; + else + threadCount = 1; + + // dont use threads + if(threadCount <= 1) + { + system.fn(entityList, componentList, total, deltaTime); + } + // use threads + else + { + // avoid creating more threads than there are matching entities + threads = realloc(threads, threadCount * sizeof(pthread_t)); + threadArgs = realloc(threadArgs, threadCount * sizeof(ecsRunSystemArgs)); + + // for each thread, create a runsystemargs instance describing it's area of influence + // then create the thread + size_t perThreadCount = total - (total % (threadCount-1)); + perThreadCount = perThreadCount / (threadCount-1); + size_t remainder = total % (threadCount-1); + for(int j = 0; j < threadCount; ++j) + { + threadArgs[j].fn = system.fn; + threadArgs[j].entities = entityList + perThreadCount * j; + threadArgs[j].components = componentList + perThreadCount * j; + threadArgs[j].count = (j == threadCount-1) ? remainder : perThreadCount; + threadArgs[j].deltaTime = deltaTime; + + pthread_create(threads + j, NULL, &ecsRunSystem, threadArgs + j); + } + + // wait for completion of all threads + for(int j = 0; j < threadCount; ++j) + { + pthread_join(threads[j], NULL); + } + } + + // clean up + free(entityList); + free(componentList); + } + } + if(threads != NULL) + free(threads); + if(threadArgs != NULL) + free(threadArgs); + + ecsRunTasks(); +} + +void ecsSortSystems() +{ + int swaps; + ECSsystem tmp; + + do + { + swaps = 0; + for(int i = 1; i < ecsSystems.size; ++i) + { + if(ecsSystems.begin[i-1].execOrder > ecsSystems.begin[i].execOrder) + { + memcpy(&tmp, &ecsSystems.begin[i-1], sizeof(ECSsystem)); + memcpy(&ecsSystems.begin[i-1], &ecsSystems.begin[i], sizeof(ECSsystem)); + memcpy(&ecsSystems.begin[i], &tmp, sizeof(ECSsystem)); + swaps++; + } + } + } + while(swaps > 0); +} + +void ecsEnableSystem(ecsSystemFn fn, ecsComponentMask query, ecsQueryComparison comp, int maxThreads, int execOrder) +{ + ecsPushTask((ecsTask) + { + .type=ECS_SYSTEM_CREATE, + .system=(ECSsystem) + { + .fn = fn, + .maxThreads = maxThreads, + .execOrder = execOrder, + .query=(ecsComponentQuery) + { + .mask=query, + .comparison=comp + } + } + }); +} + +void ecsTaskEnableSystem(ECSsystem system) +{ + if(ecsResizeSystems(ecsSystems.size + 1)) + { + ECSsystem* last = (ecsSystems.begin + ecsSystems.size - 1); + memcpy(last, &system, sizeof(ECSsystem)); + ecsSortSystems(); + } +} + +void ecsDisableSystem(ecsSystemFn fn) +{ ecsPushTask((ecsTask){ .type=ECS_SYSTEM_DESTROY, .system=fn }); } +void ecsTaskDisableSystem(ecsSystemFn fn) +{ + // calculate distance between end and to replace + ECSsystem* to_replace = ecsFindSystem(fn); + ECSsystem* end = ecsSystems.begin + ecsSystems.size; + size_t dist = (end - to_replace) - 1; + + // shift everything after to-be-deleted item back by one (overwriting to-be-deleted) + memmove(to_replace, to_replace + 1, dist * sizeof(ECSsystem)); + + // resize array + ecsResizeSystems(ecsSystems.size - 1); +} + +// +// TASKS +// + +void ecsPushTask(ecsTask task) +{ + if(ecsPushTaskStack()) + { + ecsTask* last = ecsTasks.begin + ecsTasks.size - 1; + memmove(last, &task, sizeof(ecsTask)); + } +} + +static inline void ecsRunTask(ecsTask task) +{ + switch(task.type) + { + default: return; + + case ECS_ENTITY_DESTROY: + ecsTaskDestroyEntity(task.entity); + return; + + case ECS_COMPONENTS_DETACH: + ecsTaskDetachComponents(task.entity, task.components.mask); + return; + + case ECS_SYSTEM_CREATE: + ecsTaskEnableSystem(task.system); + return; + case ECS_SYSTEM_DESTROY: + ecsTaskDisableSystem(task.system.fn); + return; + } +} + +void ecsRunTasks() +{ + for(size_t i = 0; i < ecsTasks.size; i++) + ecsRunTask(ecsTasks.begin[i]); + ecsClearTasks(); +} + +// +// FIND HELPERS +// + +static inline ECScomponentType* ecsFindComponentType(ecsComponentMask id) +{ + for(size_t i = 0; i < ecsComponents.size; ++i) + { + if(ecsComponents.begin[i].id == id) + return (ecsComponents.begin + i); + } + return NULL; +} + +void* ecsFindComponentFor(ECScomponentType* type, ecsEntityId id) +{ + if(type->size == 0) return NULL; + + BYTE* sptr; + ecsEntityId* eptr; + int l = 0; + int r = type->size - 1; + int m; + + while(l <= r) + { + m = round((double)(l+r)/2.f); + sptr = ((BYTE*)type->begin) + m * type->stride; // median element + eptr = sptr; + + // found the correct component + if(*eptr == id) + return sptr; + // go up + else if(*eptr < id) + l = m + 1; + // go down + else if(*eptr > id) + r = m - 1; + } + return NULL; +} + +static inline ECSentityData* ecsFindEntityData(ecsEntityId id) +{ + for(size_t i = 0; i < ecsEntities.size; ++i) + { + if(ecsEntities.begin[i].id == id) + return (ecsEntities.begin + i); + } + return NULL; +} + +static inline ECSsystem* ecsFindSystem(ecsSystemFn fn) +{ + for(size_t i = 0; i < ecsSystems.size; ++i) + { + if(ecsSystems.begin[i].fn == fn) + return (ecsSystems.begin + i); + } + return NULL; +} + +// +// RESIZE HELPERS +// + +static inline int ecsResizeSystems(size_t size) +{ + if(size == 0) + { + free(ecsSystems.begin); + ecsSystems.begin = NULL; + ecsSystems.size = 0; + } + else + { + ECSsystem* nptr = realloc(ecsSystems.begin, size * sizeof(ECSsystem)); + if(nptr == NULL) return 0; + + ecsSystems.size = size; + ecsSystems.begin = nptr; + } + return 1; +} + +static inline int ecsPushTaskStack() +{ + size_t size = ecsTasks.size + 1; + void* nptr = realloc(ecsTasks.begin, size * sizeof(ecsTask)); + if(nptr == NULL) return 0; + + ecsTasks.size = size; + ecsTasks.begin = nptr; + return 1; +} + +static inline void ecsClearTasks() +{ + if(ecsTasks.begin == NULL || ecsTasks.size == 0) return; // no tasks + + ecsTasks.size = 0; + free(ecsTasks.begin); + ecsTasks.begin = NULL; +} + +static inline int ecsResizeEntities(size_t size) +{ + if(size == 0) + { + free(ecsEntities.begin); + ecsEntities.begin = NULL; + ecsEntities.size = 0; + } + else + { + ECSentityData* nptr = realloc(ecsEntities.begin, size * sizeof(ECSentityData)); + if(nptr == NULL) return 0; + + ecsEntities.size = size; + ecsEntities.begin = nptr; + } + return 1; +} + +static inline int ecsResizeComponentType(ECScomponentType* type, size_t size) +{ + if(size == 0) + { + if (type->begin == NULL) return 1; + + free(type->begin); + type->begin = NULL; + type->size = 0; + } + else + { + void* nptr = realloc(type->begin, size * (type->stride)); + assert(nptr != NULL); + if(nptr == NULL) return 0; + + type->size = size; + type->begin = nptr; + } + return 1; +} + +static inline int ecsResizeComponents(size_t size) +{ + if(size == 0) + { + free(ecsComponents.begin); + ecsComponents.size = 0; + ecsComponents.begin = NULL; + } + else + { + ECScomponentType* nptr = realloc(ecsComponents.begin, size * sizeof(ECScomponentType)); + if(nptr == NULL) return 0; + + ecsComponents.begin = nptr; + ecsComponents.size = size; + } + return 1; +} diff --git a/easy-ecs/ecs.h b/easy-ecs/ecs.h new file mode 100644 index 0000000..a3920fe --- /dev/null +++ b/easy-ecs/ecs.h @@ -0,0 +1,138 @@ +// +// ecs.h +// gl_project +// +// Created by Scott on 08/09/2022. +// + +#ifndef ecs_h +#define ecs_h + +#include +#include +#include + + +#if __cplusplus +extern "C" { +#endif + +typedef unsigned long long ecsEntityId; +typedef unsigned long long ecsComponentMask; + +typedef void (*ecsSystemFn)(ecsEntityId*, ecsComponentMask*, size_t, float); + +#define noentity ((ecsEntityId)0x0) +#define nocomponent ((ecsComponentMask)0x0) +#define anycomponent ((ecsComponentMask)~0x0) + +typedef enum ECSqueryComparison { + ECS_NOQUERY = 0x0, + ECS_QUERY_ANY, + ECS_QUERY_ALL, +} ecsQueryComparison; + +typedef struct ecsComponentQuery { + ecsQueryComparison comparison; + ecsComponentMask mask; +} ecsComponentQuery; + +void ecsInit(void); + +/** + * \brief Allocates a component list for a component type of stride bytes. + * \param stride The number of bytes to allocate for each component. + */ +ecsComponentMask ecsMakeComponentType(size_t stride); +#define ecsRegisterComponent(__type) ecsMakeComponentType(sizeof(__type)) + +/** + * \brief Get a pointer to a component attached to entity. + * \param entity The entity to find a component of. + * \param component The component type to find. + * \returns A pointer to a component if found. + * \returns NULL if entity does not contain the given component. + */ +void* ecsGetComponentPtr(ecsEntityId entity, ecsComponentMask component); + +/** + * \brief Assigns a new entity id. + * \param components A component query referencing the components to add to the new object. + * \returns The id used to reference the newly created entity. + * \returns NULL if allocation failed + */ +ecsEntityId ecsCreateEntity(ecsComponentMask components); + +/** + * \brief Gets the component mask for an entity. + * \param entity the entity to get the mask for. + * \returns the ecsComponentMask for entity. + */ +ecsEntityId ecsGetComponentMask(ecsEntityId entity); + +/** + * \brief Checks if the argument is a valid entity id of a currently existing entity. + * \param entity The entity to check the validity of. + * \returns 1 if the entity exists, 0 otherwise. + */ +int ecsValidEntity(ecsEntityId entity); + +/** + * \brief Destroys an entity and all associated components + * \param entity The id of the entity to destroy. + */ +void ecsDestroyEntity(ecsEntityId entity); + +/** + * \brief Attaches one or more components. + * \param entity The entity to attach the new components to. + * \param components Bitmask of the componentId's to attach. + */ +void ecsAttachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Detaches one or more components. + * \param entity The entity to detach components from. + * \param components Bitmask of the components to detach. + */ +void ecsDetachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Enables a function to act as a system for entities matching the given query. + * \param func The function to call when query is met. + * \param components The required components to run this system. + * \param comparison The type of requirement components represent. one of { ECS_QUERY_ANY ; ECS_QUERY_ALL }. + * \note + * When comparison=ECS_QUERY_ALL the system will run only when all of the masked components are present on an entity. + * \note + * When comparison=ECS_QUERY_ANY the system will run for all entities where any of the masked components are present. + */ +void ecsEnableSystem(ecsSystemFn func, ecsComponentMask components, ecsQueryComparison comparison, int maxThreads, int executionOrder); + +/** + * \brief Disables a function acting as a system. + * \param func Pointer to the function to disable. + */ +void ecsDisableSystem(ecsSystemFn func); + +/** + * \brief Run currently enabled systems. + * \note Implicitly calls ecsRunTasks after completion. + */ +void ecsRunSystems(float deltaTime); + +/** + * \brief Run queued tasks. + */ +void ecsRunTasks(void); + +/** + * \brief Terminate the ECS and clean up allocated resources. + */ +void ecsTerminate(void); + +#if __cplusplus +} +#endif + +#endif /* ecs_h */ diff --git a/include/ecs.h b/include/ecs.h new file mode 100644 index 0000000..a3920fe --- /dev/null +++ b/include/ecs.h @@ -0,0 +1,138 @@ +// +// ecs.h +// gl_project +// +// Created by Scott on 08/09/2022. +// + +#ifndef ecs_h +#define ecs_h + +#include +#include +#include + + +#if __cplusplus +extern "C" { +#endif + +typedef unsigned long long ecsEntityId; +typedef unsigned long long ecsComponentMask; + +typedef void (*ecsSystemFn)(ecsEntityId*, ecsComponentMask*, size_t, float); + +#define noentity ((ecsEntityId)0x0) +#define nocomponent ((ecsComponentMask)0x0) +#define anycomponent ((ecsComponentMask)~0x0) + +typedef enum ECSqueryComparison { + ECS_NOQUERY = 0x0, + ECS_QUERY_ANY, + ECS_QUERY_ALL, +} ecsQueryComparison; + +typedef struct ecsComponentQuery { + ecsQueryComparison comparison; + ecsComponentMask mask; +} ecsComponentQuery; + +void ecsInit(void); + +/** + * \brief Allocates a component list for a component type of stride bytes. + * \param stride The number of bytes to allocate for each component. + */ +ecsComponentMask ecsMakeComponentType(size_t stride); +#define ecsRegisterComponent(__type) ecsMakeComponentType(sizeof(__type)) + +/** + * \brief Get a pointer to a component attached to entity. + * \param entity The entity to find a component of. + * \param component The component type to find. + * \returns A pointer to a component if found. + * \returns NULL if entity does not contain the given component. + */ +void* ecsGetComponentPtr(ecsEntityId entity, ecsComponentMask component); + +/** + * \brief Assigns a new entity id. + * \param components A component query referencing the components to add to the new object. + * \returns The id used to reference the newly created entity. + * \returns NULL if allocation failed + */ +ecsEntityId ecsCreateEntity(ecsComponentMask components); + +/** + * \brief Gets the component mask for an entity. + * \param entity the entity to get the mask for. + * \returns the ecsComponentMask for entity. + */ +ecsEntityId ecsGetComponentMask(ecsEntityId entity); + +/** + * \brief Checks if the argument is a valid entity id of a currently existing entity. + * \param entity The entity to check the validity of. + * \returns 1 if the entity exists, 0 otherwise. + */ +int ecsValidEntity(ecsEntityId entity); + +/** + * \brief Destroys an entity and all associated components + * \param entity The id of the entity to destroy. + */ +void ecsDestroyEntity(ecsEntityId entity); + +/** + * \brief Attaches one or more components. + * \param entity The entity to attach the new components to. + * \param components Bitmask of the componentId's to attach. + */ +void ecsAttachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Detaches one or more components. + * \param entity The entity to detach components from. + * \param components Bitmask of the components to detach. + */ +void ecsDetachComponents(ecsEntityId entity, ecsComponentMask components); + +/** + * \brief Enables a function to act as a system for entities matching the given query. + * \param func The function to call when query is met. + * \param components The required components to run this system. + * \param comparison The type of requirement components represent. one of { ECS_QUERY_ANY ; ECS_QUERY_ALL }. + * \note + * When comparison=ECS_QUERY_ALL the system will run only when all of the masked components are present on an entity. + * \note + * When comparison=ECS_QUERY_ANY the system will run for all entities where any of the masked components are present. + */ +void ecsEnableSystem(ecsSystemFn func, ecsComponentMask components, ecsQueryComparison comparison, int maxThreads, int executionOrder); + +/** + * \brief Disables a function acting as a system. + * \param func Pointer to the function to disable. + */ +void ecsDisableSystem(ecsSystemFn func); + +/** + * \brief Run currently enabled systems. + * \note Implicitly calls ecsRunTasks after completion. + */ +void ecsRunSystems(float deltaTime); + +/** + * \brief Run queued tasks. + */ +void ecsRunTasks(void); + +/** + * \brief Terminate the ECS and clean up allocated resources. + */ +void ecsTerminate(void); + +#if __cplusplus +} +#endif + +#endif /* ecs_h */ diff --git a/orb-pink-red.png b/orb-pink-red.png new file mode 100644 index 0000000000000000000000000000000000000000..f68e89a5cf9fe415bbd242710f3028caecafa479 GIT binary patch literal 16462 zcmaL9Wmr^S*f%Cm0|~FJHXz$U12Cbg^-F-MW=H6%qLHoWNas2mh_%t&@a>xG8UJ z%PV9gvUoz|Y=xR<@d_S1E|npDL*H7Ge$9A#>bbDdCN^TZG>~2Gx+rdhe|80ZNUt#?{UsvN5|A4K)uhiKYPuw^?0~|uJAF$58(;PwQ-Li?r%mdr3tI$-bBP6}~@}w?J z8)po@%`;u@2vL-m3f;CnNl8PegVGK=XdpF7 zeLxvbqncrh`r`Nz&Vfw|N9j|4Ni{7D+3tAJjqxQBVzqUE_Xq;vD#>S&uDI+7!}*F4 zmyD{x++gG7EWzu0&x+KJjYr;Y7Lo`t_bOXOKHgPTf~*Xm;*m@D8**cP9d286K)ULT zga^duS~WtLEi9D+Rvj@`IsK=qdM~AJlX}t$tG{0M<=Uo0IwJgydD?pt+DsqT=!cYybL|QA5%P1lP>qrt4UZebJqc1b~+Xo+PxER0TnA>jR6uw)h z%@Ok3w{Lb_buv5Hh$-HXEk@_Nm{>lG@5{wp?d(x)GAV}>kWxwr#gf2{WR5o*tn3sI9Vt@q_)P*R?b#P+rDy8hOQ7dZ}$q&oCDmHK)*vci4IQ~4@@>4Y7ptBt;C86#oO zo8ad$7H>V0=MEm~PMbOq@LSV`%&gqvVjH>JbFWf~ z%0CcFRQf>|pLp!`611L5G(IeU_+jV54Q{?0-0_CrTj<2jeaUa{ab8ID{h2WS(yb}D zNB@7&KFQ!OVr~0MU7R9!zungc<3?>3uVC55jvLjrIYNf(v+&Qbwb1uRgOMBV$$g>f z6t32digSgRo!o6kmtjb-{-sM&lSH;SIT6FFkh%EYz>Q)y^_-)oHZwew_LJGjsl#C- zcvD_XF@bO6WaBj1%9&;57w=ntmYBY8Qv^>JdJ^ZA{;H9r&OGI6=QUW-uI#03d7vE% zi;0UCtUj?EyPiHuqoVgX*`l8JSlBj6rXnzgTgpu*)CD8VtFNWS1$CK~zC+&#b+Vef^W^(eB z3)L~JFTZxN^_0I2<+0fGe^{~Ru@`rZy}O%5K%3yv?PBDebS?K29U|g;ylBS&7gwOZr|CTPj znDr^=c^>#W|C$8SQRv#XxKnV^iORPV71W6mzh|$Ut)|0CM+icLTXe-T| zUw#^Jwi;);OZy%prihU>{11GMEsw>xv{(Fz_Z3N>tRf9uU^x3BZXuzXk;Z4&==k@8 z3M)KhgkF+t1DpUqRq@%`feSaHi8M!;H~fe2rA)t@?rz?8F$$NK8{nU^- zz4cxyZ_Lqaqj0=yFOPlG{@%PR)QTml`ZuH7o2L(obdr+&&lkm(amT}@u)EqSub4eO z!XLf<{x|Da3NLba6i*bv?=Fp-jK>NzaZpeN{I0od?j<}2tyqQBrAaYa)F7eb*mE508 z;x2Ru&879Eun2Psvr{Km+H}_&?7^Jn*j6_r3}}P1jw3bWy4|;}VR-%Yd7WP+6Yn)C zz7O0NkECq*_*#kP=0c*;#c%0hsCVz0*?l>-G%lM1K13_CJuftN*=5q%gQK$H*V@Fk zb6+lDpVTKUkH!v-!_rf7d5fH+SmWJ z^gWv3SrwYpSvwJF^Ge|GLvGpJ?a(gAGrliA*iLJ%$DyApWkabNRH*6S!Faja|E*^| z>q0Vx%m&y7I;!%j{nu|nFV)~5uYs}i?aCNRM4AnU3MA*5MWVB)03 zh%OHlsDVY3>PnzZ_XpHXjyz^HhTSVj(7iW1eL?YXuffdrdb^n#OqWxXX;7HVXX1CK z)U9}OD7~zz5pw0|Tc?Mw`oFx7XX7!M9U#{^81dr&9M>g8qp6$jwlIz1k9St<5icF6qHFm_N4TD_Ep$(W5#V6TSXu zz2(R{Lpnx=Kt76RAb7zCY@a1KO#jM*4}aO$!EES!uR@wYezi)xYKCqRlSV%qKE9b; zggwcwTIgQayF~9MfzO75i<2w^z3hM7WP!AT_6HcfUmY?U z*8sp|2@=lFTZex2puBw@iMD{tv@yUo>1@9Gj60c1X3tS$>{QK1#X zzx*OXRD9lbS2ZrNa{6BRpmHI5?!0mc-SDX>Ja0^=#3&vWlKU=C*nA@dQ_l9-=@8)# z?BA$-4*m_6d;Ks-STi0R7fpq!>Q~GmGer%mUiaiiN}6^{TH!k8oz^nT2V2&89v{yG zj^QbS(H)MTCN?%V!(LsVu&ylqsyqWT0JeiRrLE@r)#r6iCFSVA-7!OV>e6P8vK{r2 zv+WOJTlqyC@dF3!({L~h;IOX0_{rC4fB61|;}KQlfK!tR!*K?v#?K#t0hq|)s4|C^ zMrfsMMq7S}fd#Se7llb*4jaCJtK^oY8M^jJ-E%Re!EI{4w#Cruq*hE%ev~9}Pps&fOF#)m$kjwT^j6)a{j`_H2k#G>=Cb18ycERV8OkDG zhAzHxX}d50#V1syYr!eQ!x@{y?M)CJjf^GSLf2!VEtos30baz(K$2M5E_93R;W{0a zq_~_T7A5DYt1L9x&)t9C>TN)j2%RG*Y<_S*9%;qolR%$Vw7*>cqrB^0|6Guzovf4B z*LMsh{3`~A8EQUgy=H?;4j%NdS<`ctt4`eReSyzk_%OdXVm4*MrbMbND~vI0sXe|4 z4>q$!cnWicZww^Ks*xmV^`xfhFGWjuXL$UUyfU`DM3e2tpbRjB1u!BJ;^G8^b~Q=` zJGMp6vKY5lceJC^{Nw*?Y_HKUq3D)VNZyAT{%F+!+lCQhfZ0jhSyh0^RYIFe5yX}qgHgr6iPZKT71&QXhk0UM32?9i1;$Nd zxO6!QddJ&^EtzW#JmmJCWEYUG!j7NWFrsShhV1NxuZ~9ktQQ6ggeUc~YnP*6#a>1^ zCp@_smC+kd#t%75lmHA={m;~M^` zDDbmd4Km}vEDscOOI!f?%W_byt;;8wpX=;YGtvptv+QMzAwDl%4_^%{NU{PO{4p|# zdZ*Ckvw}&?tHoCiUREtTrS&R*Q|PFP%_4{>0)sWg>}1_wZ1Hm|=`!y|&CPUOSt(0Eg)xAVU8DFduNYfgREZbsUC2zG?Jz>@8PO~E>Erw$wgz-bv(6ZB&4 z=RfW&d{gMeezYH-%i2oC>_7C0b8s|JpQuX&kJYt>+CMzPY}zx8v5_cm!;fe~r<|1` z^g6~I2z_+_PUSI@t(-7-;6)T1?V+TYvG8foM4EmrvH{VzeZrq(giiNIa%LG7nO{e z*X`S+DD2KOqFRjkKCGG5iqXYkA`6> zln{W{`!zhalUU}nf)4kpHj7PMO;spiG;B4socU!5KDQ5UJ!xQ9+3uQ(vO5KSJz>bI z)R@C6`*{Z@T_9_Hf|dlUw#yMNMkYafatk##b)gys)VC^>x2n3Z)d?z+KH*J-HbxmyMf~0Vel#>ENjiE0~<|DkYWMV!a9a5Mw5*~h4ssP_S+Ua z) z%QqKB@7C4M*So>#lqkh)g7s&h`IUVMO>f0s*~h^nk6+`?N@Y;U|G7S|u`|W*+RGL2 zdnv>|_K9!tU$8UGEz1lyzDz08Q}TC^Tjp_P1t!zjr3a86o&1(0V00&muCo)U_j@%; zMX6YVgJ}eB3By!4$vIAGV>&t3|7IwD=T#UN{RMWKbUY#+-rk*rN0himYi>z{C=Gnh zg;^;m)II&x^7xugsH>&^t@)?(M{-PQ52S;gUq;kglXY&68&T8@0_+dp|2zs(#`g}5 zO^^!l-~DuaJureVWVio;p0c)mi;Xb-?rHO=Z}n3d&0qOIp9-mX!0SHS)}AY^|MAyU z8g%0Ao0a^%#Ul?6<{sJkUMS!Mf8!IkI7M2F=a7047~6wl2Zg?UacAju-N%M8zmqs3 zIye=mOHU04b^fuX(7%n9^Gtt0dUs3TaaV3)bKs_Cv|qrS3uwc z!D;ZxyAk?2sS4BsaNVPLlFHx-tvVLE9}<5wxCT2kz2c9WF$VH;f^CEVkNxh*y7vzBC4>&+~!ZZ$CkJ(m&lxY zv)(O2tkrmi-hKA5#4s%Z$zrekO<{@R9!D!p0ffHI(C0TXGw+64x-z}$3IrGKM-eDn zU}*ruv|)rPwM1JaL^jOr5!TKytXBm8R+sKqC+e}ns**=9d;9S%TAIZNc3#c_L*@Zs!65F>a)UpbC;!7a&``gir@8g#YElqx+ErwD{9Mi8%Dsqjx8Iwe2O=%k3 zL~VEv>sG6cL@o~Y`C4`DsJTosTAhh$w1Y+l4!Mj&x&{xAJatZ<+FjrYKc+CiXc4#I znSR4Fy6EZ@XK|GLe$H~AtB{1X7Q#tb_)l`y2a-w=#$De*%v@FArfV(+x}ZvQJDE&X z524Mdf+T90H0jYS3sG=k5Z|fk2$wK3indC?1PM^6g}Glq&saDjY~Qu(d-7VEd15u7 zq}i8Oo_+f^(7b@5f=kjfD8cJZ$PK^3z97V{blvq{Ne z7uUn~&ppF>`|J}6?>--hzRu3c_sq5EOCo}-ag>P$0xw={2_IZ50~-C?lCYL{J!kI$ zntGv(FFPC^{Cg=tBOSezwVg_@s(yM`R(g*^f^Ngq`I!wLuGV27kuWB=4~_mh3+P{U zZ&>h)Spgu%eSabVDj;EvPRCa9(nyN9y!=S{O2Ns`*l~;3`1nV`taV+-2f=ir*Z>d! zsqFBxQ;y69)g8Z7z%P$fABdAsdkK!|h++QjHy!2E6uLO4Do?c3Nvtk^LaTLKL^-j6 zGm8nfGx46V+|}|(>wA%aDhd$abiet#GFGlOPh}vp&6eS+>;@1CqjEbDBV;*=W38$t zyuG-6_B*ZL?NX;)$vw4%&;9~P01)wuH;|YH$_3*Y_4GMQSM=%tk!%+_no#uE7V&$Z_h4ZwY@#?_ci&Ax0kCEed|sU`&d)iQGp_V#6LYd(=^egLfVTNX zI?zSz*vYYeN8-Kmu2wK<8As^4e5evGxO0ID3DJI5Eu9*JK-ZzjNX?3fi@`*VHZ zb!er7Ku)Om%rlpEEatgOv4qLoiu893!nR0dpd{{mCa_DNZXveP^0HA3qGWKLPWq!h zJuh5{4cZFvRVSA&Gu~rgENMAU)1lY*SZN-~!L07mFN8nA|R;U}Et{zE#s<90EX-iI==${Fsnb)$P`uFF>nOTH)<3j8$Y$ zkG*usByxsR_gr!AaT7G0p@=7;VtEjy|IIB~iofRCYy8wnBmpO4u+~5786(3BzU97z z?mbOcR_9*w*-&oqlyY&euc*)c@0+t(LHp3l7dW{A+#v&bBZDQXJKdGbcy)gT3*yFJ zC2KRxToV3UItp1`AqY<@y`CsffoAOs35Njbz2&jErw|~}F8~MA)hx(RTACITwQ;=M zcheup>lq6U?!R0l0Me7&#x%5PTu0xt!v09E;t+KlW0|0?{0HmerVtV55#xtJufx-q zijfVvPUP52M*(_Gb@pX0<{L;9fz17{*;G}M<}N9I9y`vO8?a78Pw?;!4Aa_Tyq5K8 zR1RhGPVqrEQc7$T$z;#gGQGOU8*_~-M%LVwgH8E)1CiZDIQVy$_xC*JQZaJtbp~2w!piRsWd~h~V_AFfZMG$5$1&ZRd zoUpPlqKSL)DmP!nu(|B{6U8~%^%Qo{CR_w-cACinKu}eHpLozLz6S`TOY~~?}dbofW%9Inp|rIi7R2r#HEiXKsbD~Bj!$me}pl8R9|jfBa$UUz`xIA zv#c|r9>4mUH6Gqa%NvU|J>G5=VcD-xf)f1&CCjzxol5E`KnwgB#s)UuO_Ogr zsPvw_6Qg!Ls>hlh4%8y20^A7SVOLx@iQV@V-CRnlU6XRIbt9k_ME{al;`VO_t_LHs zfOa0pGyEK}Ffg16)AQ$5U&bl>&@DDPN>A|~0TvXph^otv)2pYmXn&p&($ka= zs>xqHO=6L{vs9+1b8pv0bJ(RRnCuC|Ry?7D^5RVoql}8q+*qxMS$qPm4WPKLkbIB0 zWEymnbTo@cgKqNi=vRqCdhJhQn`KhBxF=0ccP<+O(pq zYMiXGxPcB5$8zVaXu%|!!~B}OkyzF1Xd3HH#&vrcy(`Bh)B=w<|4j@+ehbr>VavBv zL!8;wt`4ChU_79gEQJ(!L_LEuA769uW@24cp~*lozvHG zty1QE^s7#q^`2TxBhPP^j2z2A2_}O!kpuI~Zu0|=!iGYM9zO=3_oIiMqY2u^$6fkp zfd61=?jq|l*G)D1EamF>Y#r-5ErE@qsNG~q@xuWAXYu1{MCm?}Ub|Gdxw$X5 zZ-f}R-`2e}P&waG2%Elo7zAIx}8QUc$XK-2WY2 zQVMNlaR{)lA${uNH!s%z>A=7}0fedRY%sJrPl8u%Nf#uRX-|Khe}MU7E@MAB zJ%;7Eno$8?6wX4;)QXq9`*VOT=Xe6J%<&YQ;NM#5;XfNA?FjwZoN*-6cf&7jJ|g{F z+k-Ge$^y^bH@)8`{{O{(px$2M z9Wa5BV_`A=0a+fjK4$35X+t@}=Rr5@v<$AZ-2cD0aj%@82B0MxaDH{HT zoY3TE2%|enRx@OJc*=Xph`T)h4CG}nGLy`r%+j3*c5b@*^5oRMjd|**yt?WC^oRb1 zo=*(BsP`ivk!R(gT5Pn=W1nYCYk4JjB!_lIR(a9`extP$xU+yEK@mzPiC)KzUw;3l z>D#fZoT^C}kk>)Y0F%91#KR2zRHctxmVjn$JwjL8@Xa;FID{1be$|1PW)u+HuEcq> zf&Wcy0gdZwTdA!Vaiudya9aV)xl+P^B!o^$ut~~eL@h!z$LhDd^;2bY9(6yV<2ssm zkbp;ksM0JW^he^ZsvbdI^AI0~ZZ};`RA5YShnPk&&Su3;(!ECuFjM+w*oSOgVmd4i zI_PMBz!Wj;3@9L2YAW$O5?I>mK?2WA%f%^bA-#g_!ea7&IOp_~O>nLW9UwzpW@y4? zie9MNO!U}lVOhsI!Cp= zMAm|FONjAO+0)IGjv&2nuLkGyV+|&I(f`icW!O+hd)s>0q}@AXwy5tUbLXMCT{29L zb0kYZ4wk^L0S!oF$-Tt%@3c)!)1SGgwA3foX^DQADx}@^`c@XMwqy|TO$W;q_Vp@* zHRtin5UNAr%#d;MIUW0lLh>Jm7*%B+ALdBV`jBXFaA{@~Y?G9cV)4)~BCXwa9^R{` z*52j(bp9yvJx?g{{LpN4NeBkxJzPfW>RNsIwK1;hUlhsGJ({~z;OdeuddIy1zNv@1 zf8H!(yk2HknQ>9MlgI)YMfkoHZ@t_Fr4357ML@L+Z~e|86V*GD&ZQ_*oBXr+@d58y z^rjU)rQ+B7>@?IpqXBNHc;QsdGi3sn=KY9$MU`KFI6{hPbr&a3BOk(g zSojD=zW^hu0cL!zXPb8}yyTt3ZK#lk#BX?Nh7? z6l`EZ05lYG_gvVP4nT+H7$s(;@E$!`=p>Rbx@o4VoBbOViM%i0wxjOV=BKp)WcxX+pqR34fG%k0}SYaCo|^e8IiZ^QBekZkcOlwd17_4fqkBN%4N}nG{W@Y7Jf#KT6CuA2 z!@B)bcSx3~I@5T}S&dXc_476Hf-sZVR@?0pcE?mAwl8964Y@LT zdxv4g6#4sHpi;8qd;qG>(#}0zBJ{0FV!4>g0$%>z=(98Pf9&BTO0dX1ZlODjyzsEE z@`!5Brn(|sD_6KLoqVmsz-G*|5jd>gwBSbhtj>KnTXgUUSJosa$GN73b{a``$N928 zPWGS?@A}X?ll$@eG=_CM;(QaYuIzaecZ-XpA^cyomdE9`+pH*;9mKML%~3#+w)22K zVSwoVAcIlcQ?Re8TMBu9A;;dccraIbsP7lC|GUAjXp5=*({^_|nlNa9m`SE&aHNl` z`5FuA%q#c!q7uc=NddwEa7J1!hwZgzD90tC+BEGdwXsbJmHyC}3Uec}iVgGLQTvNE z!#&{`&}^T74IO`z9Lle;>8~h$0nG4gCG%s;`jq0cax-up5p$RfW~w#Fg$PexO!S{i zD&l30YXZ>KxOXMQXxXdC5S!{ye8$}%FykZ3_CB3u?Ojrf+0|tW`U40E(jEW2!VX;% z051L4VfdK96(@V^X}$dOHy?x;g*U3|L%_qHVY%GYkV(dAuI z=g$!_Cu6F|YGSTrWjV+eB@~|?Zdy;mj5CUE`$ZRL5bbpOLJ;Iw(FE>q}&#z!7~B>`(<5Ow){raQsGwwGy!C>3Hk%RM}gd7)NHt+nrr~!9|N1p z^Tbu?*wV>Ubfw^CE{5;yZGI!E-ZG93VqtF?Vq}Z=MZx2Mue+~i`lD(76Bl`zKN>9X zY=mNI&whJ|Z%2l(Xc3Ls;j`*Q%b~m-jP0X2#$biKu@?z+=R+P>PG~wMt6AL*F-7fI zf1S54Ube^Ndw1?-0tpvVAd{?nt;qcj)VjbeOOP}DC#JCpU;#~7JS$_}kb&d*=SY11byN*x%6tj@mD^T>2t3NLN`nOE! zB|ezA9%W9ATS)J9MS)G*z&r!z#q-P4&^A>%P^7&UE-C5bbPy(zxp*S%id3CPBQK9v znR(VbrlQt>sR|Eh5%MFixsPkdr1@8XhyA`GVGf>Dpz)Zq%gp05E(Yl)A@!gatz?U@ zESr2q{JkUG&wPF9NZJkdde~US;qh0EGe{S(jMS`W+$t+3;+`hwUNerb)Hv zU)-@Wm#zJ{;>zlouh}0Z9{CcQ3PTF1F2rGl)iZY6JpxUv@&K{EaBlehJwc0oN=x+b z>qSfFb}@Vac}y3qFXnMu*FA7r0(twsx-Ca=2{>UFS^`KMSdGV9j|Sw6KIAtT)p=a< z@(mj?mCIv)Ul);%|2RubKaX9A-}C-lF~E^*n+X1p9E~tv@P)}J`sBGX7S#G}T*Hiq zH!M$)be)7i*g=S5Q&L|tUFPI7aOakOREcOx08}MHw)RJ+oXBO0vbhTg{`8K}>x&oG zQ9zp`knoky^Z4B50FEW*v|=zwb#SGq?$F|#yeKEzGTaCQ4gpJLGsWZA_Ides&1@O$ zK{6*)2%+!RxB=UStjv19%wlRSqH=f)sJS$13@3Y<ww_3adz0KFwK2mz zQsrQdpSfY+vp{MDM$)RU0|nhlM`Y14HT8{CDur4g@S2jnO;KZkdVHqpfgP$zi3l>g z;D-52ag~t#r?f+AU&&&0J^c__-R(vJ`b}`~B$7hjbF62+Qm9&oL98J#hjkBYv}7Td z8o@1C6|s#ZrpjRm!1dfd!&)62q{)B4~zhO zS4EXaTI{dn3FOUg&`qNbszM>aKNLh;rK0sqr+(e^`=m30w~)xvMI;@ETOj)A-R1*x{+4 zyLXJc!kHCrYoq)Jv>LVI_c0vFsa>1CRU%(PI%>Mdgp}l}d&ekyjq+edqcGs^B zp+ZgIMUuY95+Sw$bsz+epOyMO_rJ;ON+>A{&Qa+Zi@lBBF1QKCn*}B*TWi=Cq+*^a zJsa=@@PKn-v8kP6J>SjP;P;Zv+Jz*#5Rue6XAyRVR>&X@4FK}OwnSM8NY*74T6Pn( zHLs?(fwS8mG?4`R87dlqSmDs$p5xi#3D0 z+I!BX`2m#Zf^+%&r@)5=>KG84y!sK>lpcCi z1tIPjHtC58;Nj^+fn_rSHBiu%{ux7xZ>KbHmpB48E*9|dny2K!DdiAR#Wl)iyWLLJ z-_c8s!2_~lHq-#E$}3TIrB;W5r*-2C3~ZxkKorotAr1lYw0UH`+=Ux$wMHg`EFpIr z-cF*0JrIHbfX(ZFrpkIk)qVE9rml!55IE8GZk>RH7@ zW#*`QtN#;3T(M;Qu(NU?)?`0MNM7qnHm>PsPox21g|Uc7HlZ0f03RJOunS|^fu(Eg zg#+|DVW2f9pxMxNSv-0*7xgBUBvyD6w@RMummmS3GoGds1<)z2iT|4rkW$~Dy#2hh z_A!SAi>-cH$V6phfIhsBi?<$ITRo6RRrWs(f)*gOAGXQh7LfkaSFr%Z3E6j@naE+j z-AoaIX=@ri`OsV6p5ZC2A`N4iRid|%gc#t;#w=>u{spUw8*R}cbxMP?iCgk(Fw#!Km9ohGtF{??vP7K!joy`|35(VRc!c`M(J6iX z>2=u+<>lBz$LTR1Z_v(2J*o<8c)8+0l=VAXj!X#>2r(UxNMeBe@XV0f^agYOf?AWY zcT-_vH4l?i>qz)LS9O;+~S}9Lt9T!hX2r z+=ohHq=R-$AeRHCer_-xCBwK)^-9I!b14 z04xefC3hiWnCqA!i>_-%LZ=jzr7GpJ_SU%sadV#ue!!k*PKMODI^`@e$T5J|U%ck& zLTe@nCxFK66}F#L{50`poELFfp}B{*!N<(i@;nqfjghbT0AskHb|tYSaUAc8*W4c! zs)-KfgxKUtm^d{*vTUa;v5L!@4!R7(Csh%n{H(w~^hghAG%Yn-2c<&iVyw?Kg6mMGfqA_-z80QR@6CU zr^TfXs&s*5h!RDq_phIU)+cy!HW_*UDVj9uC}%&WKH%= zSf(%1;2i-YPb(ImbB~0STG0+&c(q;lCbejllW1i-vCQGk{a5Sb;)Ffl_?)o(pQM9# zoPb?8;`!kEm{Db=vfF+Uu+K1#o#s7b>V|omADdIF&cM#c_z+=)y{23$@xl_olL2=l z93M9*sQKhKE^u5_*(H=;hYJGN9!U7$BAvV&cIgi&W1R|lV9`O`K(z4xO+&-un~?K( z0|mu5n|E8Yc~$_IXEY5S0-`{OF7RC6}2M zdui3U#EJL2;vzogn+BedP$IFeu_%z(PRxuYQOfwlAv1mQ5X>_E)QK2e_EV6u@+(9h zL+uwnhieC(%NOM0r@(KqTMdb{N@!pb8yeG*xmX2&3fTa+BT>}s3BZNn5vLXRq~OiQ zF0)3;SCU;wRJLk}`_8O%l6?6Y5s>*QMCD?{%+i!Dn$S;Uw;YJaFz&P&) zP(toOradn_P9|niIsfp2AuBZ?OBjR0Gbeg+&U&c#6*dcLyY7u0Me9&?3wTO;Lm+b% zU(!k#0BFuYHm~pPR}6d^0$L-t_1A7}K7PbN|L?ZQX+mZcT1Btt3KAF}iWR82SPl)- zFn6cAQC5~$e=>lW_$<2CVMyUwCnBOGE;D_eko274LpU>H^SMU6VHh!HyIl$uakxpe zUPR-qZ#i6+&^j%jy$^#XUNLYyTdfLeDY|T0aP9WCf8qm$3N!N-WO5A4x%&JwmkO%bCk^fD9I#4psv3iYu{?St@GfM=S^V$dIr4 zXztX*0{gA}td*oz+tk(b$2zL#*N`uVQMMqY0O*@)&jG{-k#y%CT4Dq2#yNR18r5^VK%{4WTQS=JJr^HkJ3ShU{g= zMgo1=0+s`WlS|=9Bx~=Aa}+%?8|jFdAB7QAxlXdXp&=kdH_f0NO1$`&tp&pjY!1Dy z(MF2a(;Xf7opJpr-!}D^;Ij%8t}WxCX7nt!OM}pHs(DQ#S;79azf?bE@tQ|9WbIk3 z#gKTj7Kq|E0=lr*#n_s&gBx#v$gUTxYRnG^ic=-ldMgDT{!q)&2=Wjuev2}hxuGD0 zI@-2L{zKwS{h?P`%%l7=>#wQWH*?vVX~voBM>fu(LnnP5=M^ literal 0 HcmV?d00001 diff --git a/ship-player.png b/ship-player.png new file mode 100644 index 0000000000000000000000000000000000000000..742c091d5b972afa62f39afb200a85b05dfad3f8 GIT binary patch literal 6569 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 literal 0 HcmV?d00001 diff --git a/ufo.png b/ufo.png new file mode 100644 index 0000000000000000000000000000000000000000..dd27dfda5cea800bf5f5557db7700452eacf00af GIT binary patch literal 11420 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 F{{SU?cgz3) literal 0 HcmV?d00001