Commit Graph

138 Commits

Author SHA1 Message Date
17cc6063a3 Restore battle system using hash data structs 2016-08-25 18:29:36 +10:00
7ca42f781a Start merging hash table access into assets
Basic implementation with many pre-existing features disabled untill all
parts of the system that interact with the assets transitions over.
2016-08-25 02:06:32 +10:00
b43754986f Load sprite sheet into new atlas structure 2016-08-24 18:31:26 +10:00
84a2c5e382 Implement common_atoi and add unit tests 2016-08-24 15:25:58 +10:00
1f2c2082a0 Add framework to parse xml tree into game data 2016-08-23 18:20:20 +10:00
2c1d3f9593 Build XML tree from XML tokeniser, print xml tree 2016-08-23 15:19:03 +10:00
a1ff789485 Basic XML tokeniser for reading spritesheet xml 2016-08-23 02:40:38 +10:00
4d7025876f Reorganise, separate motion from input parsing
Parse input was computing irrelevant data. The function has been inlined
and extraneous computations in the function has been moved to the
appropriate locations.
2016-08-22 23:13:44 +10:00
42a004e6e3 Align debug window to corner 2016-08-22 20:18:55 +10:00
ca415619dd Fix window logic to stop stealing scrollbar focus 2016-08-22 18:05:10 +10:00
4e585a4939 Move ui element rendering to window rendering 2016-08-21 15:19:11 +10:00
70a3032155 Add debug window, parent buttons to debug window 2016-08-21 00:21:50 +10:00
aa34bbefc3 Refactor window data to struct 2016-08-20 22:30:02 +10:00
1df75c54fc Add moveable window UI element 2016-08-20 18:41:17 +10:00
cc874888cc Add spacing in debug display stack, center all button text 2016-08-20 14:24:42 +10:00
801107908a Add toggle debug display button and config entry 2016-08-20 14:18:05 +10:00
6ec92358b2 Add audiostate field and audio toggle ui button 2016-08-19 00:56:02 +10:00
90068d2c64 Add string length in pixel func, add button label 2016-08-19 00:25:43 +10:00
c33b37b0ea Render battle damage on screen, draft implementation
Crudely done to get an understanding of the kind of storage needed to
store UI on screen that may have a limited life time.
2016-08-17 20:37:56 +10:00
e90b31de55 Separate UI code into own file 2016-08-17 18:04:51 +10:00
5cd7239c8a Switch rendering to xy bottom left, zw top right 2016-08-17 17:35:31 +10:00
cb857cfaa6 Reassign debug keys, backspace on textfield added 2016-08-17 15:57:42 +10:00
8aa23b7cfc Add delayed key repeat 2016-08-17 15:29:14 +10:00
80b35d404d Add better input parsing with key repeat tracking 2016-08-17 02:21:02 +10:00
22973ef51d Add text field draft implementation 2016-08-10 21:52:05 +10:00
4127542d1d Clean up scroll bar implementation 2016-08-10 18:23:19 +10:00
2d7262aa22 Add basic scrollbar imgui code 2016-08-10 01:43:26 +10:00
Doyle
f85ab5c86d Add readme.md to project 2016-08-05 01:55:52 +10:00
db1eb7b9f3 Switch over to rect vs v4 where appropriate
Main change is switching the camera to use a rectangle. There is no rect
change in renderer for grouping size and position together. Due to
noticing the use case of rendering- where it's convenient to be able to
offset the rectangle from the position value when passed into the
function explicitly without having to re-create offset Rectangle structs
to pass in.
2016-08-04 22:17:14 +10:00
eb1962e05e IMGUI use data from Gamestate, fix pointInRect bug
Wrong if logic causing point-in-rect to be valid if only x or y is
valid, where correct logic is both x and y need to be within the rect.
2016-08-04 21:17:16 +10:00
8eb9068093 Add notion of rect struct and button rendering
Begin switching over to using Rect instead of V4s for rectangle operations
for added semantics of pos and size, instead of 2 coordinate points. There
    are more meaningful rectangle operations based on its position and
    size. By providing that upfront it's more intuitive and convenient
    than deducing size from subtracting two vector elements.
2016-08-04 19:42:35 +10:00
adb1aa83f3 Add mouse tracking, add null-texture gen function
Refactor the creation of the null-texture into a function. Used for
blitting rectangles that don't have any texture associated with it.
2016-08-04 18:46:46 +10:00
aa505ed0b3 Remove input dependency on GLFW in game code
Create own platform abstraction for keyboard input for use in game code.
2016-08-04 18:19:02 +10:00
523fe0f2b1 Introduce notion of attack spec for battles
An attack spec will be used to hold the stats of both the attacker and
defender, grouping the data necessary to determine how much damage the
defender takes and other statuses caused by the attack.
2016-08-04 00:48:43 +10:00
b5db6e0e2b Add one-shot audio playback (i.e. buffer all data) 2016-08-04 00:32:13 +10:00
1900de6a92 Create event queue and start sorting entity list
Use event queue to decouple audio playback from the battle system. Switch
back to using begin and end attack within the entity update loop for
conciseness.
2016-08-03 23:20:03 +10:00
190822c1f6 Add entity attack audio cue 2016-07-28 22:17:32 +10:00
9ec87fc8be Remove old tutorial file 2016-07-28 15:58:49 +10:00
85becdfd6c Merge the game to dengine, reduce header coupling
Until engine architecture can clearly be separated from the game, i.e.
notion of entity storage belonging to game and concept of entity belonging
to engine, worlds/scenes belonging to game or engine- the project will
only refer to Dengine.
2016-07-28 15:19:23 +10:00
8a3886a60e Separate entity functions to own file 2016-07-28 14:33:58 +10:00
1427ee3fde Add draft audio change concept on mob proximity 2016-07-28 13:36:16 +10:00
ac775b39c2 Add error checking to Audio API 2016-07-28 13:11:30 +10:00
09972ced6e Add start/stop audio api, fix delete buffer bug
On intermittent stop of OpenAL playback deleting the buffers without
unqueuing the current buffers is an invalid operation, causing invalid
audio states on alGetSource().
2016-07-28 01:55:21 +10:00
630f2eaa5d Add audio looping, simplify audio API
Audio can be played with 1 call, audio_beginVorbisStream which
encapsulates the initialisation of the renderer and release on finish.
OpenAL is quoted to have a limitation of around 32 sources. Audio
renderers hence acquire a source slot on playback and immediately release
on finish. This ensures that sources are held optimally and minimises the
possibility of saturating the available sources.

Renderers hold an index to the source list, which the index reveals the
source ID for their use.
2016-07-27 22:50:14 +10:00
824d8fd8a0 Initial integration of audio to entity structure 2016-07-27 18:39:51 +10:00
54dd5c84fa Enumerate audio devices, add multi-audio rendering 2016-07-27 16:52:10 +10:00
9c3df0c488 Fix console rendering old strings, refactor audio
Removed duplication of audio buffering code in audio update and streaming
vorbis.
2016-07-27 01:40:22 +10:00
84a0f755ea Abstract audio playback into own file 2016-07-27 01:34:26 +10:00
99a700ca13 Add audio-streaming and loop support 2016-07-26 18:47:55 +10:00
6b2e759257 Basic audio with stb_vorbis decoding and openal 2016-07-25 22:10:50 +10:00