this also coincidentally fixes a weird bug I encountered while
(mis?)using tp_alloc: by using PyType_GenericAlloc, I avoid the segfault
that tp_alloc sometimes causes. See the horrible UIDrawable retrieval
macro that I use in UI.h for a workaround that can probably be replaced
with this technique
no testing done.
should enable rectangular (non-square) textures
"sprite" method; let's just overwrite sprites with texture coords
Hoping to replace awful code like:
`self->data->sprite.sprite.setTextureRect(self->data->sprite.itex->spriteCoordinates(val));`
with something like:
`self->data->sprite = self->data->texture->sprite(val);`
closes#4
commit 8f060dc87b
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 22:20:03 2024 -0400
Removing std::cout debugging statements
commit c9d5251c71
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 20:00:57 2024 -0400
In-place map modification worked
commit 0a8f67e391
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Mar 14 23:13:13 2024 -0400
Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault.
commit 05d9f6a882
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 22:27:12 2024 -0400
wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though.
commit 972768eb26
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 21:02:48 2024 -0400
inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII
Massive new set of behaviors:
* Move, resize*, zoom, and pan mcrfpy.Grid instances from Python. Note:
there's a rendering error with resizing, which will have to wait for
after 7DRL.
* Add, remove, and create mcrfpy.Entity instances from Python. The
fields can be edited to change position and sprite. They can be removed
from a grid and/or added to another. the Entity class is closely related
to the EntityCollection class, the Python interface to UIGrid's
std::vector of UIEntities.
* mcrfpy.GridPoint and mcrfyp.GridPointState objects. The GridPoint
class allows access to the "physical" parts of a grid. The
GridPointState class allows access to an entity's knowledge of it. Grids
and Entities have an "at" method that takes a tuple (x,y) and returns
one of these objects.
__repr__ and many other nice things are notably absent - many TODOs were
added to the codebase today. They can get picked up after 7DRL.
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