1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-27 02:33:50 +00:00
Commit graph

1123 commits

Author SHA1 Message Date
fgenesis
1d4eb5533e Worked around "set global function xx" warnings in jukebox mod + fixed long comment ends. 2012-06-01 17:53:21 +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
a90f57afb0 [vfs #1] Add ttvfs, miniz, and minihttp sources 2012-06-01 17:23:19 +02:00
fgenesis
99e3f5ebe2 Fix possible crash on OSX introduced with localisation patch 2012-05-27 16:56:36 +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
77c9b86235 vcproj update 2012-05-25 17:39:07 +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
6ffb668668 Improve Lua-related warning messages - show call stack 2012-05-23 01:16:14 +02:00
fgenesis
2278e55d0c Multi-language patch by Henrik Holst 2012-05-21 04:05:44 +02:00
fgenesis
0fbd5d81ae Don't use internal zlib headers.
Thanks Henrik Holst for pointing.
2012-05-21 03:43:15 +02:00
fgenesis
faf4023b5d Fix subtitles not appearing when starting a new game.
The problem originally appeared in changeset 203af0d613b4.
2012-05-21 03:35:20 +02:00
fgenesis
da15c7424e Fix compile for gcc 2012-05-19 00:41:31 +00:00
fgenesis
c03c43c291 Merge branch 'master' of /home/fg/fgone/Aquaria_fg_clean 2012-05-19 00:17:31 +00:00
fgenesis
05af5dfe21 Replace magic animlayer numbers with an enum (cosmetical change only) 2012-05-14 15:48:01 +02:00
fgenesis
a8c951672b Add a few functions to ScriptInterface 2012-05-14 15:46:29 +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
5cef84ad9d Fix some oversights in the animation editor that wrongly occured during text input. 2012-05-05 16:53:53 +02:00
fgenesis
8b80af432a MSVC9 project files + missed icon & rc file 2012-04-15 15:20:48 +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
83dbb7e310 minor things, added entity_loadSkin function 2012-04-01 18:14:02 +02:00
fgenesis
3fb9e41349 Merge branch 'master' of /home/fg/fgone/Aquaria_fg_clean 2012-03-17 17:50:20 +00:00
fgenesis
e94de627eb Really fix variadic calls (including self). Also fix avatar_setPullTarget() failing because entities are userdata now.
This does now allow constructs like this, in an entity script:

  function msg(me, a)
      if a > 1 then
          a = a * entity_msg(me, a - 1)
      end
      return a
  end

So that entity_msg(thing, 5) == 120 is true.
2012-03-14 20:11:14 +01:00
fgenesis
0cdbc66c02 Minor script fixes
- Bigmouth & Grabbyarm will no longer spam "entity invalid pointer"
- Make Huggys follow through local warps (thx to Andrew Church for this)
2012-03-14 01:00:46 +01: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
dcfc946ffe Merge branch 'master' of /home/fg/fgone/Aquaria_fg_clean 2012-03-12 03:13:55 +00:00
fgenesis
bd9648aa60 Fix particle & shot loading on linux (fix file name case) 2012-03-12 03:13:34 +01:00
fgenesis
25e228d3ca Fix particle & shot loading on linux (fix file name case) 2012-03-12 03:03:58 +01:00
fgenesis
4891fcc339 Fix "tile dummy" error.
When a mod without a world map was loaded from a saved game,
and the player died and respawned at the last save, the game
would spam this error message.
Now it loads world map explored data only if a world map is present.
2012-03-11 18:48:18 +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
568178bbb4 Some fixes for node script init/cleanup.
An Errorneous script could cause a node script instance leaking,
preventing the leaked inctances from unloading, and thus
locking the whole file, preventing it from re-loading when relaoding
the map, until the mod was exited.

Also init nodes properly when cloned or changed.
2012-02-18 23:35:30 +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
ea780f2ac9 Added a blockEditor="1" property to a mod xml. 2012-02-12 01:15:46 +01:00
fgenesis
3f0be8c79e Double the amount of available save slot pages for the non-dev version. 2012-02-11 23:58:08 +01:00
fgenesis
9b2c18ecaa Build fixes for clang; little CMake config update 2012-02-10 20:28:35 +01:00
fgenesis
f738c19757 ScriptInterface: one more errorLog that should not be there 2012-02-10 01:22:21 +01:00
fgenesis
88a62567ed Fix some bugs introduced in my prev. commits:
- Game::reconstructEntityGrid() now really clears only entity grid,
and not the tile grid as well
(Added OT_INVISIBLEENT do further distinguish entity from tile obstruction)

- Invalid script pointers should not pop up message boxes

- Lost an include and CMakeLists changes
2012-02-10 01:06:44 +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
5623b11f83 little (harmless) typo in IceChunkCommon.lua
Caused a warning, nothing more.
2012-02-09 16:09:17 +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
fgenesis
9e675be651 Fix obstruction grid edge rendering.
This patch adds the functionality of the removed hack added in 07bc370c1680,
but without the runtime performance impact.
OT_* obstruction types are now a bitmask; as a side effect,
Game::baseGrid is no longer needed, which reduces memory usage by
4 MB.
2012-02-07 22:25:17 +01:00
fgenesis
ed767d150b Little hack to bring audio thread creation down.
Do not play sounds with volume 0 that would never get audible.
This helps against stuttering on maps with many entities that play
sounds in regular intervals, but are too far away to be heard.
This needs to be removed once audio position updating is implemented.
2012-02-06 19:54:28 +01:00
fgenesis
1d12576322 Fix 2 minor typos from the script update patch, and one in SoundManager
The latter one caused sounds in mods not being properly cached (and not
played), if the internal mod path started with "./", which is the case
on windows since an earlier commit.
2012-02-06 17:36:07 +01:00
fgenesis
ac822ec91d Fix missed logic bugs in reordering of RenderObjects within a layer.
Because of wrongly set firstFreeIdx some pointers were NULL, where they
shouldn't be, which caused hard to track down crashes.
This is an addition to af04d0c37698.
2012-02-05 20:31:17 +01:00
fgenesis
99375127e1 Fixed a shader related crash that occured if the following conditions were met:
- BBGE_BUILD_SHADERS defined
- Blur enabled in config
- Entering a "warplocalnode"-Node while taking damage

These conditions caused it to enable shader related code while taking the
screenshot for the warp transition, that caused a crash because the shader-
related gl*() function pointers were not initialzed, because the current
code never loads any shaders.
2012-02-05 20:26:23 +01:00
fgenesis
7ff0caaed8 Script interface improvements & extensions.
- Pointer typechecks are now enabled by default.

- enabled all script warnings for non-FULL or DEMO builds by default

- Added generic obj_* functions that operate on any type of RenderObject.
  These give quite low-level control about the renderer, and are quite
  dangerous too.
  Subsequently, many functions sharing the same code (*_setPosition, for example)
  could be removed, and simply call the generic functions after a type check.

- Added interface function deathNotify(). The original logic of death
  notifiers was never used, so i thought i'd make use of it.
  This is useful in scripts to safely drop dangling pointers.

- removed sendEntityMessage, entity_setCollideWithAvatar, entity_setTouchDamage,
  which were essentially no-ops.

- Replaced all unnecessary luaReturnNum(0) and luaReturnInt(0),
  now it does only push a return value on the stack if the function
  is actually supposed to have a retun value.

- Allow variadic calling of entity_msg(). Now any parameters can be passed
  to the function, and the target entity will receive all of them.
  Any values returned from the entity's msg() callback will be returned
  by entity_msg() to the original caller. This allows nice RPC-like
  entity communication.

- fixed possible crash in debugLog, bone_update, entity_debugText

- added an override function for loadfile() that is case-insensitive like dofile()

- entity_createEntity returns the created entity now

- spawnParticleEffect returns the associated RenderObject

- Added some text rendering functions

- Added beam_setFirer()

- removed the underflow check in avatar_decrLeaches() I added earlier

- added a panic function for Lua.

- added the Lua debug library

- fixed a stupid typo in ScriptObject::isType() that made the type checks a lot less accurate

- misc stuff I forgot
2012-02-05 20:22:54 +01:00