Commit Graph

27 Commits

Author SHA1 Message Date
John McCardle 0a8f67e391 Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault. 2024-03-14 23:13:13 -04:00
John McCardle 05d9f6a882 wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though. 2024-03-12 22:27:12 -04:00
John McCardle 972768eb26 inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII 2024-03-12 21:02:48 -04:00
John McCardle 8739da8463 Easy cleanup: delete files from the old Entity & UI system that were replaced in EngJam 2023 & 7DRL 2024 2024-03-09 08:59:39 -05:00
John McCardle 45f07b7226 Crypt of Sokoban: incomplete 7DRL game and engine stress-test 2024-03-08 22:26:40 -05:00
John McCardle 9eb9562b9f default debug action fixes: UITestScene now uses the same grave hotkey to start REPL 2024-03-08 22:25:48 -05:00
John McCardle 5ada446360 Window scaling functionality 2024-03-08 16:55:58 -05:00
John McCardle 8e1552eec5 Bounds checking on Grid point access, and correct the formula. Caused segfault on non-square grid size (and was transposing coordinates!) 2024-03-08 14:08:49 -05:00
John McCardle aa7f2ba605 Segfault fixes. Switching scenes broke some assumptions. All PyObject calls from userspace now handle (discard) exceptions and return values. 2024-03-08 12:09:09 -05:00
John McCardle e8240cb380 Exit functionality via game engine, because sys.exit was making a mess 2024-03-08 10:17:26 -05:00
John McCardle db548c9183 Scene switching safety 2024-03-07 13:30:08 -05:00
John McCardle 4b31864b2f Adding text functionality to Caption (why was that missing???) 2024-03-07 12:35:07 -05:00
John McCardle 343669df1e nice-ifying UIFrame __init__ and making debug a bit easier 2024-03-07 11:19:46 -05:00
John McCardle d417bdc8a3 Whoops, some issues with deleting timers. 2024-03-07 09:49:24 -05:00
John McCardle ccd79fc551 quick & dirty timer functionality 2024-03-07 08:59:26 -05:00
John McCardle 9d728ee902 Keyboard initial functionality commit 2024-03-07 08:13:37 -05:00
John McCardle 9587218b28 Mouse input prototype 2024-03-06 21:12:26 -05:00
John McCardle 6a1edfe182 remove more cruft files 2024-03-06 21:10:31 -05:00
John McCardle 145012074c Remove cruft from API. New style objects are now the only objects 2024-03-06 11:04:50 -05:00
John McCardle 30cfa5ca71 Scene switching API 2024-03-06 10:50:19 -05:00
John McCardle 6de3f0e8cf 7DRL 2024 Day 4 updates - UIGrid / mcrfpy.Grid
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.
2024-03-05 22:37:50 -05:00
John McCardle 08772111de some fixes; instantiating PyUIGrid / mcrfpy.Grid safely now. Many issues remain 2024-03-05 07:42:49 -05:00
John McCardle 4dd4f74120 WIP / UIGrid and related elements added in one giant leap. see TODO / BUGFIX in several places for incomplete functionality. 2024-03-04 23:12:08 -05:00
John McCardle 197211fa76 pre-7DRL 2024 commit: got UIGrid to render. Needs entities, sprite tests, and python API 2024-03-02 00:42:21 -05:00
John McCardle 198ed337e3 Windows build 2024-02-25 15:38:38 -05:00
John McCardle 07b597d6f2 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
2024-02-24 22:48:39 -05:00
John McCardle d0d2eae762 Initial Commit / Linux Combined Proof of Concept example 2023-02-23 19:37:13 -05:00