Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup

directories needed:
* build - for cmake output
* deps - stuff needed to compile McRogueface (headers)
	libtcod -> ../modules/libtcod/src/libtcod
	sfml -> ../modules/SFML/include/SFML
	python -> ../modules/cpython/Include
* lib - stuff needed to link McRogueFace (shared objects); also required at runtime
	libtcod -> `../modules/libtcod/buildsys/autotools/.libs/libtcod.so.1.0.24`
	sfml -> `../modules/SFML/build/lib/*`
	python -> `../modules/cpython/libpython3.12.so`; standard lib at ../modules/cpython/build/lib.linux-x86_64-3.12 & ../modules/cpython/Lib

You can get dependencies by:
 - Build from source (i.e. all submodules)
 - Go download them from each project's website
 - install packages from your distro and symlink them to deps/lib directories
This commit is contained in:
John McCardle 2024-02-24 22:47:20 -05:00 committed by John McCardle
commit 07b597d6f2
999 changed files with 6679 additions and 155791 deletions

34
src/ActionCode.h Normal file
View file

@ -0,0 +1,34 @@
#include <SFML/Window/Keyboard.hpp>
class ActionCode
{
public:
enum CodeType { Key = 0, Mousebutton, Mousewheel };
const static int KEY = 4096;
const static int MOUSEBUTTON = 8192;
const static int MOUSEWHEEL = 16384;
const static int WHEEL_NUM = 4;
const static int WHEEL_NEG = 2;
const static int WHEEL_DEL = 1;
static int keycode(sf::Keyboard::Key& k) { return KEY + (int)k; }
static int keycode(sf::Mouse::Button& b) { return MOUSEBUTTON + (int)b; }
//static int keycode(sf::Mouse::Wheel& w, float d) { return MOUSEWHEEL + (((int)w)<<12) + int(d*16) + 512; }
static int keycode(sf::Mouse::Wheel& w, float d) {
int neg = 0;
if (d < 0) { neg = 1; }
return MOUSEWHEEL + (w * WHEEL_NUM) + (neg * WHEEL_NEG) + 1;
}
static int key(int a) { return a & KEY; }
static int mouseButton(int a) { return a & MOUSEBUTTON; }
static bool isMouseWheel(int a) { return a & MOUSEWHEEL; }
//static int wheel(int a) { return a || MOUSEWHEEL >> 12; }
static int wheel(int a) { return (a & WHEEL_NUM) / WHEEL_NUM; }
//static float delta(int a) { return (a || MOUSEWHEEL || 2047) / 16.0f - 512; }
static int delta(int a) {
int factor = 1;
if (a & WHEEL_NEG) factor = -1;
return (a & WHEEL_DEL) * factor;
}
};