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

117 commits

Author SHA1 Message Date
fgenesis
e8f1129c24 Fix startup crash and linking error in release mode 2016-07-18 03:21:24 +02:00
fgenesis
c943759ce1 Getting closer to mutliple inputs actually working
Split logic and state from ActionMapper into another class,
of which one exists per input set.
2016-07-17 22:25:24 +02:00
fgenesis
dcf09343b5 Correctly distinguish between action sources when evaluating ActionMapper
I'm not quite happy with the hackishness of this change;
hope it doesn't incur too much runtime overhead with all these checks...
2016-07-17 17:50:27 +02:00
fgenesis
77e4bfd292 Various improvements and fixes 2016-07-17 05:54:09 +02:00
fgenesis
2fd181913e Preparations for multiple ActionSets support 2016-07-15 03:22:27 +02:00
fgenesis
881226fe43 Minor cosmetic fixes + prevent heap overflow after on taking more than 99999999 screenshots
Gotta be correct!!11
2016-07-14 05:01:30 +02:00
fgenesis
a043dd852f Major input handling improvements (#28):
- Support joystick hotplugging
- Support axes as buttons (means xbox360 shoulder triggers can be used as buttons)
- Show pretty joystick axis & button names if possible
- Tabify input actions UI
- Add 'mouse' column to input actions UI
- Allow to configure form hotkeys
- Allow ALL keys, get rid of internal key remapping
- SDL2: Use scancodes instead of keycodes since they are layout independent
- Allow extra mouse buttons (if present)
- Remove "lmbd" & "lmbu" actions in favor of "PrimaryAction" & "SecondaryAction"
  Makes the configuration less redundant and doesn't send each action twice,
  which happened if both were set to the same key.
- Fix Regressions from prev commits (menu not opening on Esc)

Still has a few minor bugs/issues that need to be fixed,
but pushing this now before the commit gets too large again.
2016-07-13 05:00:19 +02:00
fgenesis
8472718fb7 Major include refactor; changes to pretty much everything
This untangles some of the gigantic kitchen sink headers
in an attempt to split things into smaller files.
Also don't include gl.h, glext.h, windows.h,
and other such nonsense *everywhere*.

Lots of cleanups on the way too. More dead/unused code removal.

Remove incrFlag(), decrFlag() Lua functions.
2016-07-09 04:18:40 +02:00
fgenesis
d1778a97b8 wip, temp commit 2016-07-03 18:07:13 +02:00
fgenesis
34a1bcb70f Really use scancode names + little more cleanup 2016-07-03 15:48:40 +02: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
fgenesis
e2e7753226 Remove some more unused cruft 2016-06-26 00:39:48 +02:00
fgenesis
a7c2d054a2 Begin joystick code refactor; some related cleanups and unused code removal 2016-06-25 23:59:34 +02:00
fgenesis
4534b68fc5 Remove instant quit on Ctrl+Alt+Q, allow Alt+Enter for fullscreen switch on OSX 2016-06-25 19:43:20 +02:00
fgenesis
15c7776763 Remove TimeUpdateType enum and related code. Dynamic timestep was used all the time anyway. 2016-05-14 17:23:48 +02:00
fgenesis
9bb4226626 Remove RenderObjectLayer::sort() and related 2016-05-14 17:20:13 +02:00
fgenesis
d6dc3a8a09 Merge branch 'experimental' into moreclean
Conflicts:
	Aquaria/Avatar.cpp
	Aquaria/BoxElement.cpp
	Aquaria/BubbleRender.cpp
	Aquaria/FFTNotes.cpp
	Aquaria/StarRenderer.cpp
	Aquaria/WaterFont.cpp
	Aquaria/resource.h
	BBGE/AnimatedSprite.cpp
	BBGE/AnimatedSprite.h
	BBGE/BloomEffect.cpp
	BBGE/CShim.cpp
	BBGE/Collision.cpp
	BBGE/Collision.h
	BBGE/Core.cpp
	BBGE/Core.h
	BBGE/Cube.cpp
	BBGE/Cutscene.cpp
	BBGE/DFSprite.cpp
	BBGE/DFSprite.h
	BBGE/Datafile.cpp
	BBGE/Datafile.h
	BBGE/Flags.h
	BBGE/Interpolator.cpp
	BBGE/Light.cpp
	BBGE/Light.h
	BBGE/LightCone.cpp
	BBGE/Model.cpp
	BBGE/Model.h
	BBGE/OggStream.cpp
	BBGE/PackRead.cpp
	BBGE/PointSprites.cpp
	BBGE/RenderObject.cpp
	BBGE/SkeletalSprite.cpp
2016-05-10 18:40:01 +02:00
Nicolas Braud-Santoni
fb8732e97d
Eradicate remnents of BBGE_BUILD_GFLW & SDL 2016-05-05 20:24:42 +02:00
fgenesis
51baa76816 Remove unused files 2016-05-05 20:09:39 +02:00
Nicolas Braud-Santoni
eb128e65a4 Remove commented-out code 2016-05-05 19:57:50 +02:00
Nicolas Braud-Santoni
6bcee6a034
More cleanups.
```c
 #undef BBGE_BUILD_X360
 #undef BBGE_BUILD_GLFW
 #undef BBGE_BUILD_SDLMIXER
 #undef BBGE_BUILD_BASS20
```
2016-05-05 04:45:42 +02:00
Nicolas Braud-Santoni
276265be1d Eliminating obsolete #ifdefs and friends (#26)
The following options have been applied globally, using unifdef(1):
```c
 #undef BBGE_BUILD_DIRECTX

 #define BBGE_BUILD_OPENGL 1
 #define GL_GLEXT_LEGACY   1
 #define HAVE_PUTENV       1
 #define TIXML_USE_STL     1
 #define BBGE_BUILD_SDL    1
```
2016-05-05 03:49:41 +02:00
fgenesis
e661743775 Be less spammy when loading textures
Oonly print "FROM DISK" when it was really from disk, and not retrieved from cache
2016-03-15 03:38:01 +01:00
fgenesis
62c949f640 Fix rare texture loading problems introduced in 8bd40be8aa and f0d580d873. 2016-03-13 01:37:43 +01:00
fgenesis
20ee050c7b Fix build with SDL1.2 that i accidentally broke 2015-08-03 20:32:41 +02:00
fgenesis
21545e1a24 Show refresh rate in resolution selector 2015-07-12 20:25:46 +02:00
fgenesis
8bd40be8aa Fix oversight in texture loading that could cause the cape to appear as white blorb. Thx Daxar. 2015-06-10 01:49:12 +02:00
fgenesis
f0d580d873 Refactor texture loading code; should fix a crash that started appearing recently. 2015-03-24 00:06:51 +01:00
fgenesis
9973afbac6 Allow custom capes in mods 2015-03-09 04:55:03 +01:00
fgenesis
f69d88b656 ttvfs related cleanups 2014-04-15 19:48:06 +02:00
C.W. Betts
87bc46abf6 Merge branch 'master' into experimental 2014-04-06 23:26:38 -06:00
fgenesis
6203bc7ce4 Update Aquaria/BBGE/External sources to comply with the new ttvfs API 2014-04-07 02:10:05 +02:00
fgenesis
af463e63b2 Make mouse constraint circle scriptable. New Lua functions:
- setMouseConstraintCircle()
- setMouseConstraint()
2014-03-10 02:26:01 +01:00
fgenesis
2cec85fd05 Improve camera zooming behavior + camera related cleanups
- Now, the camera will now no longer be pulled towards the upper left
  or lower rigtht corner.
- cameraPos was never used as an interpolating vector, cleaned up related code.
- Core::invGlobalScale is now updated whenever Core::globalScale is changed
  (Not a nice solution but it does work)
- Increase cull radius by 10%, should prevent tiles from disappearing when
  zoomed in a lot.
2014-03-07 17:59:36 +01:00
dodumosu
f3fe225270 Update Core.cpp 2013-12-12 10:34:15 +00:00
fgenesis
82ab3fa60c Fix OSX build with SDL1.2 (nasty, nasty) 2013-12-11 03:06:59 +01:00
fgenesis
ab752e1156 replace CreateDirA() and mkdir() scattered everywhere by createDir() with some more error checking. 2013-11-14 20:07:39 +01:00
fgenesis
7de589e275 Add custom upper<->lowercase translation tables for better localization support.
Translation tables by Henrik Holst.
2013-11-14 17:58:33 +01:00
C.W. Betts
e306347577 The released version of SDL2 (According to the OS X framework) replaced KMOD_META with KMOD_GUI. 2013-09-23 01:12:36 -06:00
fgenesis
41929955d3 Fix ScriptInterface developer mode settings not applying.
Minor changes:
- clean out some Lua functions registered twice
- Correct bool cast in quad_setSegs()
- Show nested mains in debug console
- One less //HACK comment
2013-08-03 22:37:10 +02:00
fgenesis
e6680da428 Implemenet proper positional audio, one issue still.
With this patch, entities can serve as a sound source whose position
updates relative to the listener. This implements the last missing
feature of my previous positional audio patch, which is moving sound sources.
Previously, all sounds were relative to the listener with the listener
centered at (0, 0, 0), and once a sound started playing, the position could
not be changed. Volume was set as an estimation of the distance to the listener.

These restrictions are now gone; OpenAL will handle the volume & panning
based on the distance.

The remaining problem is that stereo sounds are not attenuated, at all.

Lua additions:
- playSfx() takes an additional parameter now.
- entity_setStopSoundsOnDeath()
2013-07-22 03:29:57 +02:00
fgenesis
03f99058c3 Apply SDL2 patch by ryan, with some adjustments to apply properly.
The fix as suggested by Jonas Kulla on the mailing list is also in.
There hasn't been any extensive testing, and it may not yet compile
on platforms other than win32.
2013-07-18 23:29:55 +02:00
fgenesis
93c59fdb28 Minor extensions to script interface:
- quad_setRepeatTexture()
- quad_setRepeatScale()
- quad_isRepeatTexture()

(bone, entity, ... as well)

- getOldDT() - return unmodified dt
- getDT() - as passed to update(), for complicated edge cases
            where dt is unavailable but required.
2013-07-15 03:22:41 +02:00
fgenesis
c2689bb71c Fix build on OSX 2013-06-26 15:15:19 +02:00
fgenesis
1897329071 Allow downloading data while the game is minimized.
With this change, downloads should no longer abort when the game is
minimized for more than a few seconds.
2013-06-24 03:39:48 +02:00
fgenesis
93abd03c27 Merge branch 'experimental'
Conflicts:
	BBGE/Shader.cpp
2013-06-24 02:48:17 +02:00
fgenesis
26d056d924 Slightly more sensible error/msgbox handling 2013-06-23 18:50:10 +02:00
fgenesis
8da8b5462b Remove unnecessary exception handling. Hopefully fixes build on linux. 2013-06-21 20:35:24 +02:00
fgenesis
0d98efadc4 Seems this line was lost... 2013-06-19 18:45:19 +02:00
fgenesis
4e1c2746ef Add support for "override" data directory (as suggested by smls).
Now it loads in this order:

AQUARIA_DEFAULT_DATA_DIR
AQUARIA_DEFAULT_DATA_DIR/override
AQUARIA_EXTRA_DATA_DIR
2013-06-19 18:44:24 +02:00
fgenesis
13eca9785f Intial support for package paths (as suggested by smls).
This commit is mainly intended to ease packaging for linux.
Unless environment variable AQUARIA_DATA_PATH is set, there are two
directories which are checked by the game:
If AQUARIA_DEFAULT_DATA_DIR is defined, it will chdir there for main
operation. If it's not defined, it chdirs into the directory where
the executable is located.
Then, if AQUARIA_EXTRA_DATA_DIR is defined, it will mount this directory
and all contents into the working path, so that the files present there
will override those from the working directory when accessed by the game.

Setting the environment variable AQUARIA_DATA_PATH will disable this
behavior altogether and use *only* AQUARIA_DATA_PATH as working dir.
2013-06-19 02:08:24 +02:00
fgenesis
486e8f92ad Make the dark layer affected by postprocessing shaders.
This has the side effect that elements on the dark layer will now properly
wiggle when affected by water ripples.
Before this patch, the dark layer was always drawn above the postprocessed
screen content, unaffected.
2013-06-15 03:00:20 +02:00
fgenesis
cba3535487 Keep track of total number of GL render calls 2013-04-22 23:36:31 +02:00
fgenesis
9eb5b9828a clean out some dead code and some old commented out code 2012-12-19 06:23:51 +01: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
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
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
e6e33f2f9d Little path correction for win32, this repairs screenshot and frame dumping functions. 2011-11-20 23:47:24 +01:00
fgenesis
d903e74bf6 Core: tgaSave() should free memory passed in. SceneEditor: Add support for grid map dumping (in TGA format).
This allows reconstructing the map templates, which were never shipped with the game.
This patch also fixes insane memory leaking when taking screenshots, or dumping screen frames.
2011-11-20 22:58:36 +01:00
fgenesis
385d05f905 restore debug.log output on non-win32 platforms 2011-11-20 16:27:55 +01:00
fgenesis
e64fb75f84 sync with icculus repo 2011-11-20 15:44:17 +01:00
fgenesis
7039f1d2cc Enable radial blur post processing effect for spirit form.
Code for this existed, but it was wrong and never enabled.
This replaces most of the code, and makes it work on widescreen.
2011-10-31 18:28:57 +01: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
827e8f2a4b fix MSVC OpenGL linkage warnings & mingw linker problems. use SDL.lib also for MinGW. 2011-08-11 04:56:27 +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
3096eaf5e2 initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4 2011-08-03 22:05:33 +02:00