Commit Graph

56 Commits

Author SHA1 Message Date
3cb32b8962 Adjustments following kind discussion with LunarJetman on IRC 2020-03-22 17:19:26 +00:00
ba7c06e5fd Show tooltips when hovering 2020-03-22 15:37:48 +00:00
bfe9fbdf7d Start work on menu interactivity.
With this commit, we get a ui.Interface and ui.Widget type. The
interface monitors hover and mouse click state and tells the widgets
about them; the widgets execute code specified by the application when
events occur.

Next step: have wh40k load the main menu and play sound, etc.
2020-03-22 02:58:52 +00:00
bcaf3d9b58 Get view-menu to play the interface sound 2020-03-21 23:45:51 +00:00
83aa1c4768 Remove unwanted debugging prints 2020-03-21 23:14:15 +00:00
46925c09d1 Make the menu buttons work 2020-03-21 18:50:26 +00:00
be4229b8fe Remove internal/conv
This sets font rendering back a little bit, but not much.
2020-03-21 13:37:20 +00:00
4c0355ac4f HAXXX: Make videos skippable 2020-03-21 12:05:22 +00:00
8b02f534f1 Eager load used sprites 2020-03-21 10:59:07 +00:00
7a8e9dbd97 Respect sprite X and Y offsets
This makes menus display more correctly, and also fixes trees and other
objects on the main map, although it messes up bounds clipping (sigh).
2020-03-21 00:56:35 +00:00
576ac0570d Better logging 2020-03-20 00:02:27 +00:00
5fccf97f4b Lazily load sprite image data
This cuts memory use significantly, since many sprites in an object are
never used. We can get savings over time by evicting sprites when they
go out of scope, but that's, well, out of scope.

To achieve this, I introduce an assetstore package that is in charge of
loading things from the filesystem. This also allows some lingering
case-sensitivity issues to be handled cleanly.

I'd hoped that creating fewer ebiten.Image instances would help CPU
usage, but that doesn't seem to be the case.
2020-03-19 22:24:21 +00:00
34d12edc2a Use palettized images 2020-03-19 19:02:32 +00:00
d50a160f02 Use screen scaling 2020-03-19 18:44:51 +00:00
276885298a Allow ebiten.Run execution to be profiled 2020-03-19 18:36:20 +00:00
65249b59c4 Rename go module 2019-12-31 01:55:58 +00:00
c54ead71f3 ebiten: convert view-menu 2019-12-29 23:47:22 +00:00
77202d9fab ui: Add fps, tps display 2019-12-29 20:34:07 +00:00
51e066ade1 ui: run in background 2019-12-29 19:41:20 +00:00
d1a1c50afc ui: event handlers 2019-12-29 17:30:21 +00:00
6f605aa502 ebiten: convert view-obj 2019-12-29 15:38:49 +00:00
0320743b30 Play around with menus some more
We now display the buttons in Main.mnu, but a lot remains unknown.
2019-10-09 00:41:41 +01:00
997e2076d1 Start loading .fnt files. No display yet 2019-01-02 06:16:15 +00:00
568365be3a Fix a file descriptor leak in LoadMenu 2019-01-02 04:38:03 +00:00
b21767fe97 First pass at displaying Menu files 2018-12-30 23:23:08 +00:00
6d3a13fcfb Fix a typo in copy-pasted code 2018-12-30 23:22:20 +00:00
c441851a9b Don't destroy ordering information in conv.ConvertObjects 2018-12-30 23:22:01 +00:00
6f3ed56b99 Allow the windows to be resizeable 2018-12-30 23:19:21 +00:00
73804519b0 Beginnings of a WH40K.EXE implementation
So far, we just play the opening credits on an external video player.
I want to start loading and displaying the menus next. Perhaps I can
get the entire non-gameplay flow working?
2018-10-13 03:24:10 +01:00
019108bff8 Add a TOML configuration file 2018-10-13 03:23:55 +01:00
06625007fc Fix a 16-bit overflow for large objects 2018-10-13 02:38:25 +01:00
0dd44d9de7 Limit texture size to 8192x8192 pixels 2018-10-13 01:37:44 +01:00
1fa61c72c2 WIP: Speed up rendering by using a spritesheet 2018-10-12 23:02:24 +01:00
aa093faabc Move RLE decoding into a separate package 2018-10-12 20:22:40 +01:00
056976721c Determine the RLE format for .obj file sprite pixeldata 2018-09-08 02:00:03 +01:00
b653c11606 Formalise a bit in each cell as an "IsActive()" bit 2018-03-28 01:00:55 +01:00
c8238f1853 Turns out the palette is actually identical to that in wh40k.pcx 2018-03-25 00:18:27 +00:00
285ae5d292 Make it easier to debug .obj file parsing errors 2018-03-24 23:38:12 +00:00
4d4c4da892 More .obj investigating. 0x80 seems to be a special value 2018-03-24 21:47:34 +00:00
c69beafa76 Speed up drawing and experiment with using rotation on the draw operation to get the right coordinates 2018-03-23 01:27:38 +00:00
456f71bfb9 Complete the rename from chaos-gate -> ordoor 2018-03-22 20:31:10 +00:00
2d423a4c4c Rename view-map to minimap and work on a real view-map 2018-03-22 04:15:31 +00:00
62bff1aa44 Move the palette code into internal/ so view-map can share it 2018-03-22 01:56:46 +00:00
e3a2096b00 Remove the blacklist from the .obj loader 2018-03-21 21:37:00 +00:00
c4598590c2 Another night of .obj failure 2018-03-21 05:08:24 +00:00
213b2d3eb1 Add the start of a view for objects in a set 2018-03-18 20:41:17 +00:00
5e91c31139 Simplify indifferent access to sets 2018-03-18 18:19:05 +00:00
738abfc4a8 Finish the Set/ implementation 2018-03-18 17:27:32 +00:00
961a213752 Discover how frames are encoded, use that knowledge to (finally) get the viewport locked in 2018-03-18 15:39:50 +00:00
2f02c7bbf3 Some more map progress 2018-03-18 13:57:01 +00:00