1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-25 23:43:58 +00:00
Commit graph

23 commits

Author SHA1 Message Date
fgenesis
eb1f38d86c Minor script interface cleanup and prep for next commit 2017-11-01 19:25:19 +01:00
fgenesis
9229bb2c0a Add entity_v(), node_v() Lua functions 2017-02-05 21:08:01 +01:00
fgenesis
7a60f493a5 Re-enable double->float cast warning and fix all instances where this fired 2017-01-19 23:31:56 +01:00
Valentin Ochs
f9357e7fca Merge branch 'gccwarn' into controllerfixup 2017-01-17 11:15:47 +01:00
fgenesis
9d80077754 Preparations to get rid of DSQ::inputMode -- Pass device to action() methods. 2017-01-14 22:53:20 +01:00
Valentin Ochs
fe0ab0418b Get rid of a lot of gcc warnings
Mostly signed/unsigned comparisons. Also some bugs, but I don't remember
where :D
2017-01-14 18:10:20 +01:00
fgenesis
0dc30e668d Merge branch 'experimental' into controllerfixup
# Conflicts:
#	Aquaria/Avatar.cpp
#	Aquaria/Continuity.cpp
#	Aquaria/DSQ.cpp
#	Aquaria/DSQ.h
#	Aquaria/Game.cpp
#	Aquaria/Game.h
#	Aquaria/Main.cpp
#	Aquaria/UserSettings.cpp
#	BBGE/Base.cpp
#	BBGE/Base.h
#	BBGE/Core.cpp
#	BBGE/Core.h
#	BBGE/DebugFont.cpp
#	BBGE/Shader.cpp
#	BBGE/SoundManager.h
2017-01-13 12:19:23 +01:00
fgenesis
8af953cb63 Replace spaces with tabs (future self: i'm sorry)
In most places, that is. Left some files unchanges because they are a mess.
2017-01-12 22:51:46 +01:00
Valentin Ochs
dcd21b57bd Merge pull request #41 2017-01-12 22:14:26 +01:00
fgenesis
9414be864a Huge Game.cpp refactor and various other things
Started working on a tiny input/ActionMapper refactor,
then everything fell apart and i ended up doing this.
I'm sorry.

Pretty much untested because input mapping is broken right now,
will fix that next.
2016-06-30 02:58:55 +02:00
Nicolas Braud-Santoni
eb128e65a4 Remove commented-out code 2016-05-05 19:57:50 +02:00
fgenesis
ce7239056b Minimap icon overhaul:
- Allow specifying custom minimap icons for nodes and entities
- Allow overriding minimap textures
- This removes various hacks in MiniMapRender and related
- Allow access to the MiniMapRender object via Lua
  (don't delete it or the game will crash)

Little extra: Added destructors for some entity classes
2016-03-21 03:40:56 +01:00
fgenesis
eb56a93200 Add node_setActivationRange() 2015-06-28 18:55:35 +02:00
fgenesis
1af3a580ed Minor Lua changes:
+ node_setEmitter(name)
+ node_getEmitter()
* obj_setTexture() returns bool now
2015-06-08 02:14:45 +02:00
fgenesis
b501ba67e3 Respect more nodes' active status: PATH_STEAM, PATH_WARP, PATH_RADARHIDE, PATH_WATERBUBBLE, PATH_ZOOM.
These nodes will no longer do their thing if active is set to false.
node_[is|set]EffectOn() is now an alias for the node_[is|set]Active() functions.

Also add getMaxCameraValues() Lua function.
2014-03-06 22:31:22 +01:00
fgenesis
fefb30a7b3 Allow entities and nodes to update while the game is paused.
Added Lua functions:
- node_setPauseFreeze()
- entity_setPauseFreeze()
- getFPS()

Also fixed possible crash in entity_setStateTime().
2013-08-26 20:56:34 +02:00
fgenesis
c2506d5bb2 Make some ints floats. 2013-07-20 20:17:57 +02:00
fgenesis
76cfa6fe33 Implement node messaging (node_msg() function); there is no reason entities have this but nodes do not.
Also made node script error messages a bit nicer.
2013-07-12 03:07:40 +02:00
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
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
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
c78d4d7a11 Fixed some script interface functions, error handling & code cleanups
== Script interface changes: ==

Removed entity_setClampOnSwitchDir(), which was a no-op.

Added entity_getFlag() function, for fairness, as nodes already have one.

Added node_getLabel() function, which does not return the _full_ node string, but only the first part before parameters.

dofile() supports relative paths now, and it is no longer necessary to use appendUserDataPath() + full path from a mod.

entity_color() does now support all interpolation functions that similar vector-manipulation functions support (loop, ping-pong, ease).

added entity_getVel() function (an entity_setVel() can be emulated with entity_clearVel(), followed by entity_addVel()).

*_getNearestNode() and *_getNearestEntity() allow an optional ignore parameter.
node_getNearestNode() allowed to specify a node to exclude from the search,
the others not -- now the interface is more consistent.

Deprecated entity_[incr/decr]TargetLeaches(entity) - the attached leach amount was never handled
by any entity other than Naija. Replaced them with avatar_[incr/decr]Leaches(), but kept the old
ames for now, too. Should be removed in a while.


== Script interface & related fixes: ==

Added bool loudScriptErrors to control displaying script syntax error and global variable usage warnings.
So far, syntax errors always went do debugLog(), but it is less time consuming when writing scripts
to have them displayed right away.

*_getNearestNode now scan by label, and not full name.
This allows searching for nodes but ignoring its parameters. The original game scripts never search
for nodes that have parameters, so this does not break anything,
but allows modding without an exploding amount of specialized node scripts.

entity_setBoneLock() failed for certain entites with throwLuaErrors=true,
allowing to burst through them (gears, grouper, big mithalas jelly, probably more).

Removed unnecessary int-casts in entity_setHealth(), entity_changeHealth(), and a few others,
which truncated float fractional parts.

Fixed possible crashes in many functions due to missing NULL-pointer checks,
if wrong data were passed to Lua.

Optimized entity_getNearestEntity() a little - do nocasecmp() after checking all other params

UPPERCASE global variables as used in mod include files are now tolerated, even with all warnings on.
This makes sense because it was impossible to include a custom flags definition file
(which _must_ have globals, otherwise the including scripts won't see them) in a mod without beeing buried in spam.
They won't change, or clobber any states, and UPPERCASE sort of implies a constant/#define, imho.

Added better control over warnings about not-existing files. map_*.lua and premap_*.lua files are optional,
and no warning should be given if they do not exist. Missing Entity scripts and mod-init.lua must be
warned about, however.

Fixed a crash in global variable access warning (NULL pushed into std::ostringstream)

Fixed 2 random warnings i found in scrips


== Misc stuff: ==

Related to the changes above, cleaned out unused variables from the Entity class,
and removed the code that had to do with them somehow. Some parts of the removed code
were still in use, although totally unnecessary.
Saves a few bytes of memory per entity, and less code that can cause headache.
2011-09-18 23:12:02 +02:00
fgenesis
3096eaf5e2 initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4 2011-08-03 22:05:33 +02:00