
AdaVenture for Win64,Win32,OSX,GnuLinux
...using thin GL/glfw3 bindings,
Felix Krause's FreeTypeAda [MIT-license],
and Dmitry Kazakov's Tables, Strings_Edit [GNU GPL2 license].
Uses both ftex for TrueTypeFonts,
& utex for special glyphs.
...Linux version replaces SFML sound libs with a new
Ada tasking method for playing sound loops,
for distro-portability reasons.

==========================================================
todo:
==========================================================


#######################################################
1jul20: uploaded v2.1.7 to all
#######################################################

1jul20:
.) updated binary libraries for osx, mswin.

30jun20:
.) Repaired floor-bug offset to +0.03 to elliminate
	texture flicker combat versus grass.

18jun20:
.) changed glfw3.ads binding to assure intended sizes
	of unsigned integer types are explicitly declared.
	.) test on OSX, Windows:  Good!

28may20:
.) added critical check within drawbugs that the scene
	is either 6[ch1/3] or 7[ch2/4].
.) added "cuboid.txt" to explain avatarobj.adb.

21may20:
.) added screenbugs to M6,M7 when imdead_bugs occurs
	climbing from bottom of screen to top, as if they
	are overwhelming you in 1st person; in 3rd person
	the avatar falls to ground.
	See gu-screenbugs.adb.

20may20:
.) refactored common code into gameutils-drawbugs.adb 
	to serve both maze6, maze7;
	but also to set pattern so I can extend to drawing
	bugs across view screen. 


#######################################################
30apr20: uploaded v2.1.6 to all
#######################################################

29apr29:
.) moved get-screen-sizes to right before main loop;


#######################################################
29apr20: uploaded v2.1.6 to all
#######################################################

28apr20:
.) found & fixed failure to call glViewPort(0,0,Fwid,Fhit)
.) simplified init code;
.) works perfectly now;


#######################################################
17apr20: uploaded v2.1.5 to all
#######################################################

16apr20:
.) Now perform a redhatKin test before calling glfw-fullscreen
	workaround, if necessary. Tests perfectly.

13apr20:
.) changed headers in all shaders to "330 core"
	rather than "410 core" so older OpenGL drivers
	would not cause abort.


11apr20:
.) updated glfw to v3.3.2 [built on sl77];


#######################################################
30mar20: uploaded v2.1.4 to all
#######################################################


29mar20:
.) updated linux code to assure proper retrieval of PID
	for later killing.


27jan20:
.) might have fixed occasional tasking error...
	kill is now blocking;
.) better error msgs from tasks.


#######################################################
26jan20 : REuploaded v2.1.2 to all
#######################################################

26jan20:
.) improved task code.
	Seems Ok on NUC (but debug=true);


#######################################################
23jan20 (7am) : uploaded v2.1.2 to all
#######################################################

22jan20 (8am):
.) MUCH improved robustness of music task
	so that critical steps are "protected"
	in their own subtask.


#######################################################
22jan20 (7am) : uploaded v2.1.1 to all
#######################################################

21jan20:
.) checked volume using aplay if *.wav
	and all seemed Ok as is.
.) trimmed a few large *.wav files.


21jan20:
.) modified each sound loop task to use a unique 
	identifier for its PID-file.
	This might make ada sound task more robust.
.) Now using delay in sndloop.adb of 0.25sec (was 0.5)
	before trying to read the PID file.


#######################################################
20jan20: uploaded v2.1.0 to all
#######################################################

20jan20:
.) Built new sound system for linux that avoids the
	SFML libraries for greatly enhanced linux portability.
	This involves Ada tasking to implement sound loops.
.)	A Key adjustment was necessary that adds a 0.2 second
	buffer to the loop duration input to ensure loop ends
	BEFORE allowing the Ada Task to try to replay it.  
	See adautils/sndloop.adb.
.) Tested on Redhat(SL77) & debian-based(Mint).




#######################################################
15jan20: uploaded v2.0.6 to all
#######################################################

14jan20:
.) verified gameutils-readgamestate.adb is robust.
.) now exclude libm/libz in linux version;
	This is likely to enhance portability.

11jan20:
.) updated to glfw331 adabinding.


#######################################################
11jan20: uploaded v2.0.5 to all
#######################################################

10jan20:
.) modified Selection Screen so that
	.) if a saved game exists, I now show an option 
		@ center-screen to resume saved game.
	.) this elliminates commandline question and
		response so that OSX won't need to have a 
		special exception when running the "bundle".

10jan20:
.) updated to glfw v3.3.1
.) fixed error in softlink :
	~/adaventure.app/Contents/Resources/data
	that disabled OSX-bundle.
.) fixed OSX-bundle by disallowing commandline
	interaction when executing as bundle.
	This means if you want to resume a game,
	you will need to start it from the command
	line.

9jan20:
.) robustified reading of settings.txt
	Even handles ff=dos.



#######################################################
09jan20: uploaded v2.0.4 to all
#######################################################



8jan20:
.) removed bad code that doubled mouse slew speed @ HiDpi
.) seems reasonable, for now.
.) enabled 4th marble pool edge in castle.
.) added ~/data/settings.txt file to allow users to adjust
	forward/backward speed, and slew speed of:
	.) keys
	.) mouse
	.) GamePad
	.) Joystick


7jan20:
.) added reflective water in castle pool...awesome.
.) In "osx-setup.txt" I documented how to disable HighDpi
	on Mac OSX.



#######################################################
07jan20: uploaded v2.0.3 to all
#######################################################

6jan20:
.) removed ~/libs/w64ming/libz*810.a;  
	replaced with ~/binw64/zlib1.dll
.) adjusted script wcmp64a.bat
.) Now, ALL use zlib1.dll, rather than libz*.a


31dec19:
.) Final revisions to windows build scripts to prefer
	the use of DLLs or libs in the ./binwxx/ runtime
	directory over [now hidden] libs in ./libs/wxxming/.
	Also now using most recent libz* file.


29dec19:
.) revised OSX,W32 build scripts to build and use
	libsnd4ada.a, rather than use snd4ada.o
.) put others into ./auxScripts/


#######################################################
25dec19: uploaded v2.0.2 to gitHub, SF
#######################################################

25dec19:
.) repaired sluggish fireball.

24dec19:
.) finalized joystik code.
	Works fine!


#######################################################
24dec19: uploaded v2.0.1 to gitHub, SF
#######################################################

24dec19:
.) revised handling of boldtime, foldtime, oldTimeKb.
.) Fixed definition of (Fwid,Fhit)


#######################################################
23dec19: uploaded v2.0.0 to gitHub, SF
#######################################################

23dec19:
.) achieved basic function on gamepad.
	.) might want to switch up/down (gc_look)

22dec19:
.) put finishing touches...
	.) Needed proper DLLs;
	.) needed fix to mouse_move;
	.) added system detection code (gametypes.ads);
		Works off executable names.
	.) added normalization to turn rates;
	.) removed unneeded rawmouse code.


21dec19:
.) bifurcated this directory for GLFW effort.
.) converted to GLFW;
.) initial rough cut on code...
.) compiles Ok now.
.) runs with basic capabilities


19dec19:
.) modified 5 files in sdlada

#######################################################
19dec19: uploaded v1.5.7 to itch, git, indi, SF, Jolt # 
#######################################################

19dec19:
.) reversed default on HiDpi for AdaVenture because
	it is typically NOT a problem on old MacBooks:
	.) no commandline parm => HiDpi
	.) commandline parm of "0" => NOT hidpi
.) installed freshly built Ada binding to SDL2
	v2.0.10 that is minimal and functions well.


18dec19:
.) updated to sdl2 v2.0.10:  DLLs, libs, scripts.

17dec19:
.) improvement in ftex.adb to reduce text aliasing.
.) Also, nice coding cleanup.


30nov19:
.) removed sdl_button_x1/x2 from sdl binding;
.) added explanatory comments sdl_mouse_h.ads

#######################################################
30nov19: uploaded v1.5.6 to itch, git, indi, SF, Jolt # 
#######################################################


29nov19:
.) revised, improved im_dead sounds, code.
.) now built High+Low Dpi EXEs for Mac/OSX.

28nov19:
.) reduced scale of largest *.png files.
.) deleted a few unused png files, two *.fs files.
.) Now you die if lingering amongst the bugs for 15 seconds.


#######################################################
26nov19: uploaded v1.5.5 to itch, git, indi, SF, Jolt # 
#######################################################

26nov19:
.) Upgraded linux mint and discovered library problems.
.) Repaired a library problem with GNU/Linux build that limited portability.

24nov19:
.) M9: added hole in ceiling with frame & sky shader;
.) C2: added stargate frame for skylight.
.) M9: only 1 wall + ceiling show reflected light.
	(Xm+Yp) using cheap trick.

#######################################################
19nov19: uploaded v1.5.4 to itch, git, indi, SF, Jolt # 
#######################################################

18nov19:
.) created [unused] topless room object troomobj.adb
	in case skybox (top) would be used at higher Y-level 
	than room top.
.) removed fragshader ceiling in lab8 because the default
	texture is awesome!  Same for m7, m5,m6.
.) ALSO, lowered height of all mazes+lab8 for that
	added closed-in feeling.  Note that trying to
	change iymax SHOULD be Ok too, BUT it broke the
	visibility thru interconnecting doors in mazes
	5,6,7.  Also I like a temple being twice as high
	as maze 6.
.) See src/toplessMazeSky.adb for code to possibly add to
	mazes that uses same skybox-sky as exterior.  And I
	expect that might cause unforseen additional problems.
.) did full runthru ch 1,2.  Seems Ok.


17nov19:
.) beetles: added small sideways motion to match small tilt.

16nov19:
.) Added evilBeetles that swarm directionally over a
	rectangular area with scary sound.
	.) note castle floor @ y=0, while maze floors @ y=-iymax.
	.) note: overlapping beetles will cause graphical anomalies
		since all @ exactly same height!
.) perfected params:
	mxbo=60, mzbo=25, beetrr=0.1, bugspeed=0.9, angrot=halfpi
	m6: bxc=0, bzc=-7.5, bxr=8, bzr=2.5,  music test zme<-4.5
	m7: bxc=-5, bzc=8, bxr=5, bzr=2.5,  music test zme>5, xme<0
.) new angrot=halfpi hides beetles source/sink.
	Perfect!!!
.) staggered rows & cols.


14nov19:
.) added dama8 musicLoop in return thru lab8, NICE.


31oct19:
.) changed save msg delay from 5 to 3 seconds;

#######################################################
31oct19: uploaded v1.5.3 to itch, git, indi, SF, Jolt # 
#######################################################

30oct19:
.) fixed several errors;  needs more testing;
	Pretty good now, I think.
.)	Now print save-message.
.) Now restart music in lab8 when appropriate.
.) NOTE: when resuming old state it seemed necessary in
	MSwin to add call to "sdl_RaiseWindow(mainWindow)" in order
	that focus be restored to main window.  I do NOT
	know why!

29oct19:
.) Attempting resume capability...
.) completed writeState/readState procs;
	Need to test existence of statefile @ beginning;
	rewrite it if saving exit...DONE
.) Still many problems

28oct19:
.) removed unused "pauseatlevelchange" variable 
	(gameutils.adb, gametypes.ads);
.) similarly removed "forwardok", "badHoriAng".
.) changed from glfloat to float:  [xyz]chalice.

#######################################################
04jul19: Reloaded v1.5.2 to itch, git, indi, SF, Jolt # 
#######################################################

2jul19:
.) repaired missing wall error in maze5 that made it too easy.
.) repaired scene9.txt map details of maze9...
	created by a printout from code.
.) detailed check m5,m6,m7 versus scene567...Ok now,
	after minor addition to M7.

#######################################################
02jul19: Reloaded v1.5.2 to itch, git, indi, SF, Jolt # 
#######################################################

1jul19:
.) randomized black key location in 
	.) chapter3 maze5 (3)
	.) chapter4 maze7 (6)
	.) checked validity of each location.

#######################################################
01jul19: uploaded v1.5.2 to itch, git, indi, SF, Jolt # 
#######################################################

30jun19:
.) Upgraded turkish.ogg to stereo.
.) improved exterior fog so that sky, trees, & land are
	all conformal.
.) moved portable gate in lab8 for chapter 4
	further toward entrance to M9.
.)	Made Fog exceptions for lab8, maze9, where lighting
	and colors are more critical for these two rooms.

29jun19:
.) debug ch4/m9 by using "adaventure_gnu 10".
.) added 2more chapters with dark heavy fog for M567,
	with different key pos defaults;
.) improved look of exterior skybox/terrain fog;
.) darkened avatar inside darkmazes.

24jun19:
.) further mods to SDL binding for ease of use;
	Need to test run. Done...Ok.

23jun19:
.) updated to new SDL2-v209 binding;  seems to compile;

21jun19:
.) updated sdl to v209;  passed validation check;


#######################################################
28mar19: uploaded v1.5.1 to itch, git, indi, SF, Jolt # 
#######################################################

27mar19:
.) tried/failed to join exterior with m5/m7.
	Too many serious obstacles. (../xavBad/).
	...would need complete discard outside doorway
	to hide interior sky, etc.

26mar19:
.) got portal 8/9 working!!!  
	Had to rearrange Maze #9.
	Needs testing....seems to work well.
	Final test:  try passing thru the various 
	M9 inter-connections to ensure threshold
	coordinates/angles are acceptable.
	When done, move ./xav/ to ./avent/.
.) note:  changing/resetting "?cam"
	is quite essential in 3rd person mode.


25mar19:
.) got portal 7/8 working!!!


#######################################################
25mar19: uploaded v1.5.0 to itch, git, indi, SF, Jolt # 
#######################################################


24mar19:
.) xav0.7z is first save with good inner maze transitions
	before trying inter-maze transitions.
.) tried/failed to see lab8 from maze9 (../xxav/) !!!
.) need more testing: 7 9.  Now seems Ok, after
	increasing maxnko from 500 to 599, and correcting
	maze edge handling in maze7 due to swapping of X/Z 
	(Rows/Cols) in avent-setup_maze7.adb.

23mar19:
.) new paradigm works Ok & looks great:  see thru in-maze
	doorways.  Only open 1 door at a time (+ its couterpart) 
	on nearest NoSo wall, and nearest EaWe wall;  so only
	draw 1 or 2 adjacent rooms thru each open door.
	skip lab8;  only attempt with (5/6)(7)(9).
	Do not open any other transition doors.


20mar19:
.) updated fog...sqrt(dist)*exp(-0.9*H) 
	where H=(aPos.y+iymax)/iymax in 0..2
	.) snakeFog.fs
	.) texnewHole.fs
	.) texobjShine.fs
.) reduced fog to level 2 in mazes
	.) 5,6,7

7mar19:
.) removed unneeded glew32.dll from 64-bit Windows compile.


3mar19:
.) determined that HiContrast fonts is possible
	but not used because they exhibited ugly aliasing;
.) removed unneeded adabindings/text/

17jan19:
.) perfected compilation scripts to include -D ...
	*.bat, *.sh


#######################################################
28dec18: uploaded v1.4.0 to itch, git, indi, SF, Jolt # 
#######################################################

28dec18:
.) conformalized gamePad controls versus AG;
	Revised default_settings.txt.

17dec18:
.) made z-key [return to default zoom] incremental
	like the other zoom keys n & f;



#######################################################
12dec18: uploaded v1.3.9 to itch, git, indi, SF, Jolt # 
#######################################################

10dec18:
.) reenabled OSX trackpad zoom with slight mod.
	Seems Ok on seven, so should be Ok here.

8dec18:
.) added zoom keys z,n,f;
.) MouseWheel zoom disabled on OSX;
.) camera zoom changes now show even while stopped;


########################################################
7dec18: uploaded v1.3.8 to itch, git, indi, SF, Jolt # 
########################################################

7dec18:
.) disabled mouse wheel zoom on OSX;

6dec18:
.) Improved compile script...if we include libsnd4ada.so,
	then we do NOT need libsndio*, libasound*.

1dec18:
.) added exterior wind sound;

#########################################################
27nov18:  uploaded to gamejolt; announced on GOL;
#########################################################

######################################################
23aug18: REuploaded v1.3.7 to itch, github, indie, SF 
######################################################

22aug18:
.) removed some platform-specific files from sdl208ada.
.) need to retest on osx, windows.

20aug18:
.) upgraded my sdl2 adabinding to version 2.0.8;
.) updated builds for all 4 platforms to sdl208;

17aug18:
.) all platforms now use sdl207;

5aug18:
.) renamed avatarobj to avatarolay.ad? to distinguish
	from version without overlay for Ag.
.) STILL used for Minotaur too...
	?should I use simpler avatarobj.ad? instead?

3aug18:
.) fixed avatarobj.adb and avatarobj.vs to elliminate
	strange X-scaling of arms, legs (per AG).

31jul18:
.) improved snake texture after fixing pngloader::410;

28jul18: sfml status:  now completely 250!
.) osx:  250
.) win32: 250 (was 242)
.) win64: 250
.) linux: 250 (was 242)


######################################################
28jul18: REuploaded v1.3.6 to itch, github, indie, SF 
######################################################

27jul18:  updated ocmpss.sh to 
.) use new AC2018
.) use sfml250
.) all scripts:  replace dmitri/ with text/
	(in coordination with latest OpenGLAda release)


######################################################
24jul18: uploaded v1.3.6 to itch, github, indie, SF 
######################################################

23jul18:
.) added alternative shared-lib-build scripts for OSX, 
	and the Frameworks to support them;  but not used
	to build the delivered exe.

21jul18:
.) added credit to Korla Pandit in closing scene.

9jul18:
.) now using more compatible linux libfreetype;

4jul18:
.) corrected handling of DOS-formatted config files,
	in case users' editors create one.

######################################################
1jul18: uploaded v1.3.4 to itch, github, indie, SF 
######################################################

1jul18:
.) recompiled linux version because libSDL* was linked
	to my system libs...
	...I have since REMOVED all my build-system 
	SDL2 libs and now deliver local libz, libm files.
.) reDelivered uploads.

29jun18:
.) now using Anisimkov's corrections, rather than
	those of AdaCore [Botcazou] ...yet BOTH
	methods passed every test I could think of...
	and I now believe they are identical.

27jun18:
.) updated Sanguine's AdaPng (to 4.6), 
	Anisimkov's AdaZlib (to 1.3+);

26jun18:
.) added W64 build capability;

10jun18:
.) changed default compiler to AC2018;
.) gnuAda 730 works also;
.) changed default SDL libs to shared;


9jun18:
.) created "lcmpg.sh" for AdaGnu v7.3.0;
	So it works fine...
	.) using -O3;
	.) using static SDL2 libs;

6jun18:
.) added steam coming from the nose on the
	face of the minotaur using "inverse" fog.
	See animalObj.fs
	Nice!



######################################################
1jun18: uploaded v1.3.3 to itch, github, indie, SF 
######################################################


