1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-12-27 07:06:00 +00:00
Commit graph

89 commits

Author SHA1 Message Date
fgenesis
55ead19076 Remove spirit form dependency on WorldType, and add related Lua interfaces.
This commit introduces a second pause mode:
Full game pause (as in menu), and world pause (as in spirit form).
All related checks are no longer done against WT_* constants,
but against the new world pause which is functionally equivalent,
but more flexible. Continuity::worldType is now only used to toggle
world pause correctly, and to apply some related graphical effects.
The world pause can also be controlled via script without actually
switching forms.
Added Lua functions:
+ node_setSpiritFreeze()
+ quad_setPauseLevel()
+ isWorldPaused()
+ setWorldPaused()
2013-04-25 02:51:54 +02:00
fgenesis
cba3535487 Keep track of total number of GL render calls 2013-04-22 23:36:31 +02:00
fgenesis
0c768a711d Cause less memory stress in InterpolatedVector assignment 2013-04-21 18:47:51 +02:00
fgenesis
23e0707c5b Add Lua func entity_getSkeletalName() and do not abort when a skin file is not found. Also warn on missing skeletal file. 2013-02-27 01:54:38 +01:00
fgenesis
76c31f8147 minor fixups (Entity::revive() and some skeletal stuff) 2013-02-03 16:13:07 +01:00
fgenesis
9eb5b9828a clean out some dead code and some old commented out code 2012-12-19 06:23:51 +01:00
fgenesis
1705b091aa Fix influenced particles not positioned correctly if SpawnLocal = 1 2012-12-13 18:33:58 +01:00
fgenesis
6f05249fdc Fix crash in RenderObjectLayer::moveToBack() 2012-10-09 00:57:34 +02:00
fgenesis
66d3b90473 Fix two sound looping bugs.
The first one caused the music to stop randomly on scene changes,
reproducible by changing maps with different music while holding 'G'
button to speed up time.
For some reason this caused the music to stop playing during the crossfade.
Wasn't able to find the root cause, so I added a little hack to kick the
music back on track if it stops unexpectedly.

The second one was a simple string case issue; mostly noticable because of
map background sounds not playing in loop mode.
(this is possibly a regression from an earlier patch, not sure)
2012-10-07 00:05:17 +02:00
fgenesis
31930051d5 More compile fixes for gcc 2.95 2012-09-23 05:30:47 +02:00
fgenesis
1fdae0c128 Replace #pragma once with #ifndef/#define pairs (to avoid warnings on gcc 2.95) 2012-09-23 04:51:13 +02:00
fgenesis
9e4fe3809e Fix crash added with last commit, thx KS-10 for pointing 2012-07-23 05:06:01 +02:00
fgenesis
00bb390019 Use locale "-" to turn off locales 2012-07-14 19:50:01 +02:00
fgenesis
927928167b Move key config strings into stringbank.txt 2012-07-14 16:54:28 +02:00
fgenesis
636c069403 _mods/x/locales/y/* now works 2012-07-14 15:00:37 +02:00
fgenesis
e8872b09e5 Localise sounds, voice, and send current locale to webserver when asking for mod list 2012-07-14 14:34:46 +02:00
fgenesis
82000b14ca Little annoyances that ease debugging with MSVC 2012-07-13 21:09:30 +02:00
fgenesis
319b9d09ed Fix regression that prevented few textures from loading (Labyrinth mod icon, for example) 2012-07-12 03:46:18 +00:00
fgenesis
345ff6063b Fix locale related oversights 2012-07-11 04:50:19 +02:00
fgenesis
7b2fa39428 Move localisation code to BBGE, and allow textures to be localised. 2012-07-10 22:16:48 +02:00
fgenesis
7e1c32a99c gcc 4.7 again... thx Red Skull 2012-06-27 22:15:55 +02:00
fgenesis
38501dca35 Some fixes to make the ever-complaining gcc 4.7 happy (hopefully) 2012-06-27 21:51:54 +02:00
fgenesis
283fc0086e Minor changes; based on russian opensource patch. 2012-06-19 02:29:14 +02:00
fgenesis
5329a9e6e3 Moar linux build fixing 2012-06-17 03:41:53 +02:00
fgenesis
d526b6c193 Fix build with gcc 4.7, thx vincent/mirandir 2012-06-17 03:37:37 +02:00
fgenesis
b719b8fd60 Removed textureMemoryMultiplier again; a bit more debug output for differing texture sizes 2012-06-15 17:58:18 +02:00
fgenesis
0ea9ba0770 oops, very stupid thing i made there. 2012-06-15 04:23:22 +02:00
fgenesis
a5b5da6f4b gcc complaining... 2012-06-15 04:19:03 +02:00
fgenesis
063b1c0dfc Moved most uses of glGetTexImage() into a single function with better error checking.
Also small config addition to optionally increase memory allocation size
for temporary texture pixel data; the nouveau drivers seem notoriously
awkward and keep writing over the buffer.
2012-06-15 04:12:20 +02:00
fgenesis
5b7757530f More linux file name case issues... 2012-06-14 19:06:06 +02:00
fgenesis
8f2279e28a Fix problems with loading saves after saving over them.
This was caused by the VFS caching file sizes,
and not noticing that the file size had changed,
which confused zlib because the data stream ended too early.
2012-06-14 17:54:40 +02:00
fgenesis
6d92cd24c8 Fixed more weirdness in functions using glGetTexImage(), add proper bounds checking 2012-06-14 17:40:01 +02:00
fgenesis
6dc1c1e8d1 [vfs, #3] All file reading code goes through the VFS now, new mod downloader & mod selector in place. Also a bunch of other stuff. (...)
- HTTP networking support, mods can be downloaded via the builtin downloader.
  All network activity runs in a seperate thread, which is started
  as soon as any network activity is requested.
- The master server is hard-coded to fg.wzff.de/aqmods/ if not specified otherwise;
  this setting can be overridden in the config file.
- The mod selector screen is now a grid-view for much better navigation;
  also works with joystick.
- VFS code is functionally similar to the old molebox-packed release
  for win32. The game could also have its data shipped in a Zip file
  or any other kind of archive.
- It is still possible to build without VFS support, but then the mod
  downloader and soft-patching will not be available.

The full commit history can be found here:
https://github.com/fgenesis/Aquaria_clean/compare/master...vfs

The most important commit messages follow:
[...]
    This replaces all std::ifstream with InStream, and fopen(), ... with vfopen(), ...
    Some code is #ifdef'd for better performance and less memory-copying.
    VFILE is defined to whatever type of file is in use:
    - FILE if BBGE_BUILD_VFS is not defined
    - tttvfs::VFSFile if it is.

    Other changes:
    - [un]packFile() is now unused and obsolete. That code has not been adjusted to use VFILE.
    - glpng can now load from a memory buffer.
    - TinyXML uses the VFS for reading operations now.
    - The rather clunky binary stream loading of glfont2 got replaced with ByteBuffer,
      which gets its data in one block (necessary to use the VFS without implementing
      a somewhat STL-compliant std::ifstream replacement.)
-------------
Implement loading mods from zip files.
-------------
Implement soft-patching game data files. (Replacing textures/audio/... on the fly)
-------------
Misc bits:
- Extended GUI focus handling a bit
- Fixed weirdness in texture loading... not sure but this seems more correct to me.
  Actually, considering that the texture will have its native size after restarting the game,
  the lines removed with this commit seem pretty useless.
2012-06-01 17:52:19 +02:00
fgenesis
1709503344 [vfs, #2] Move around some files (cleanup only) 2012-06-01 17:26:13 +02:00
fgenesis
c02ea1ce83 Re-implement (optionally) pre-decoding audio to reduce disk seek/decoding time.
This was removed in HG changeset 7ec478d993b7, and is now implemented
in a way that is better than before: voice overs and music
no longer cause decoding lag, as they are always decoded on-the-fly.
The additional memory use (~40 MB) should be no problem for anyone.
The default is still to decode everything on the fly.
2012-05-27 04:46:36 +02:00
fgenesis
fdce574cc5 More filename case fixes for linux (skeletal + skin) 2012-05-25 18:23:30 +02:00
fgenesis
f953f2b5ab Do all sound decoding in *one* background thread, instead of one thread per decoder. 2012-05-25 17:38:59 +02:00
fgenesis
0fbd5d81ae Don't use internal zlib headers.
Thanks Henrik Holst for pointing.
2012-05-21 03:43:15 +02:00
fgenesis
1350876b3d Restore & correct collision radius rendering. Enabled toggling the debug console on Mac.
Collision rendering is now mapped to Ctrl+Shift+Return instead of capslock.
Also fixed one float->int truncation in script interface,
and removed useless debug message when particle effect "" was supposed
to be spawned (but does never exist).
2012-05-05 17:00:46 +02:00
fgenesis
1a20ff5d59 Compile fix for win32/MSVC that creeped up for some reason 2012-04-06 20:57:26 +02:00
fgenesis
fc7fa440da Fix currents not displaying correctly after resolution change. 2012-04-01 21:24:31 +02:00
fgenesis
273b608214 Misc fixes and cleanups; fixed variadic Lua calls to self.
Script interface:
- entity_msg() will no longer corrupt the Lua stack if sending messages to itself.
- added more info to non-critical Lua errors ("attempt to call a nil value", etc)
- replaced many lua_tostring() with getString(), which does never return NULL.
  This prevents possible crashes when a non-string parameter is passed to functions
  expecting a string.

Misc:
- Removed classes BoxElement, DFSprite, Datafile, and related references.
  They were essentially unused.
- Removed unused Element class member variables.
- Show more lines in the in-game console.
2012-03-14 00:58:59 +01:00
fgenesis
bd9648aa60 Fix particle & shot loading on linux (fix file name case) 2012-03-12 03:13:34 +01:00
fgenesis
9b63b400d5 Misc code cleanups, little SkeletalSprite loading improvement.
- Removed some unused member variables.

- The BBGE_BUILD_WIDESCREEN define is now gone.

- Added an TiXMLDocument cache to prevent parsing the same file
once for each entity on the map with the same skeletal.

- Removed Lua func entity_warpToPathStart, which was essentially a no-op
because Entity::followingPath was always NULL. Removed related code.

- Set texture wrap only when required.

(Some changes taken from https://bitbucket.org/mattbierner/ios-aquaria,
special thanks for changeset 72d6460d9e60)
2012-02-19 04:57:04 +01:00
fgenesis
0cd0971671 Revert "Add a thread pool for background job processing, and use it for OggDecoder."
This reverts commit 010f44d264.

Conflicts:

	BBGE/MT.cpp
	BBGE/MT.h
2012-02-12 03:27:54 +00:00
fgenesis
c06e66d3b7 Missing include on linux 2012-02-12 02:31:40 +00:00
fgenesis
9b2c18ecaa Build fixes for clang; little CMake config update 2012-02-10 20:28:35 +01:00
fgenesis
75e7b137d6 Drop use of tempfiles when loading compressed files.
Also simplified .zga texture and .aqs savegame loading.
Dropped support for "crunched" .sav files (those were never used),
and the corresponding crunch functions.

To be done: Temp files are still used when compressing files,
will address this in a later commit.
2012-02-10 00:10:50 +01:00
fgenesis
321a65a9fb sync with icculus repo 2012-02-09 17:40:35 +01:00
fgenesis
010f44d264 Add a thread pool for background job processing, and use it for OggDecoder.
The pool adjusts to the amount of required threads.
The implementation is as simple as possible, but should be enough
for future extensions.

This brings down decoder thread creation/destruction even more.

Also fix OpenALSystem::release() to close channels properly on shutdown,
otherwise it would deadlock with the pool, because it waits until all
threads have died off, which did not necessarily happen.
2012-02-09 16:08:35 +01:00