1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-25 17:53:47 +00:00
Commit graph

76 commits

Author SHA1 Message Date
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
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
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
fgenesis
1ab32b585f Fixes for Linux
- fixed warning about PlaySfx::handle
- fixed displaying subtitles - if the path was not full lowercase it didn't find its txt files.
- CMake: removed SDLMAIN_FOUND, which is seemingly only defined on windows and does more harm than good.
- glpng: always use new libpng API (fixes windows build)
2012-01-10 19:34:31 +01:00
fgenesis
2d795b5bf7 Update libpng, libogg, libvorbis to newest versions
This also fixes a sneaky divide by zero in glpng, because some PNG's width was read incorrectly by the old libpng. (I wonder why it worked anyway...)
2012-01-10 18:43:28 +00:00
fg
b2517ec38b missed this one 2012-01-10 18:09:44 +00:00
fgenesis
4320b8296b Add a safe pointer model to ScriptInterface, additional bug/crash fixes.
This commit introduces pointer checks to various functions;
so that entity_* will no longer crash or produce weird results
if passed a Node pointer, etc.
The checks are disabled by default, but can be enabled in
ScriptInterface.cpp.

Fixed possible crashes in a few more functions due to missing NULL-checks.

There was a "feature" in the single Lua state that it would keep globals
intact until the game was quit. That made any globals from mods "leak"
into the game or other mods. Now it resets the Lua state when a mod
is loaded or closed.
2012-01-03 04:38:28 +01:00
fgenesis
d4282221fc Revert "Revert "move around some files to keep the size of the next commit down""
This reverts commit b2abcff02d.
2011-09-15 20:17:23 +02:00
fgenesis
b2abcff02d Revert "move around some files to keep the size of the next commit down"
This reverts commit 0951283b31.
2011-09-15 19:19:14 +02:00
fgenesis
56c6833220 Revert "added partial VFS support - enough to read static data from any source"
This reverts commit fa3e9e7329.
2011-09-15 19:18:53 +02:00
fgenesis
fa3e9e7329 added partial VFS support - enough to read static data from any source 2011-09-15 18:33:13 +02:00
fgenesis
0951283b31 move around some files to keep the size of the next commit down 2011-08-13 14:50:47 +02:00
fgenesis
5c6ed37b99 re-enable linking against SDLmain 2011-08-11 17:01:36 +02:00
fgenesis
827e8f2a4b fix MSVC OpenGL linkage warnings & mingw linker problems. use SDL.lib also for MinGW. 2011-08-11 04:56:27 +02:00
fgenesis
6df593975f oops 2011-08-11 04:50:14 +02:00
fgenesis
2e4e2941db log to console in debug mode; close log properly; really #define _DEBUG for gcc debug builds + gcc _DEBUG compatibility 2011-08-11 02:26:46 +02:00
fgenesis
7f9af044d7 remove last remains of DRM-related code and cleanup main() a bit 2011-08-11 01:51:03 +02:00
fgenesis
120272512c fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build. 2011-08-11 01:42:10 +02:00
fgenesis
f23b69ffc3 Revert "remove last remains of DRM-related code and cleanup main() a bit"
This reverts commit 9757cb2fca.

Conflicts:

	Aquaria/Main.cpp
2011-08-11 01:38:25 +02:00
fgenesis
ab11cdb4e4 Revert "fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build."
This reverts commit 5b511f556a.
2011-08-11 01:34:27 +02:00
fgenesis
5b511f556a fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build. 2011-08-11 01:34:01 +02:00
fgenesis
01c3e9c38f Revert "fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build."
This reverts commit fe16861832.

Conflicts:

	Aquaria/Main.cpp
	CMakeLists.txt
2011-08-08 13:06:34 +02:00
fgenesis
f8b0c29ecd whoops 2011-08-08 04:26:00 +02:00
fgenesis
9757cb2fca remove last remains of DRM-related code and cleanup main() a bit 2011-08-08 04:14:46 +02:00
fgenesis
fe16861832 fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build. 2011-08-08 03:54:30 +02:00
fgenesis
3096eaf5e2 initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4 2011-08-03 22:05:33 +02:00