﻿
Status
Reliquarium GLFW version w/OpenAL sound

-------------------------------------------------------
Rem:  In order to test a [new] 3D puzzle, initialize to
	the goal position, then play to see what starting 
	positions are reachable.


Linux Build: GNU Ada on SL79.

-------------------------------------------------------
todo:
-------------------------------------------------------

9nov22
.) updated pngloader.
.) rebuilt all.
.) tested on Trisquel.

11oct22
.) improved README.md file.
.) raised difficulty estimate of T5 from easy to medium.

26sep22
.) added code to raise selection window after completing
	a puzzle: glfwFocusWindow( mainWin );

25sep22:
.) now use new, stand-alone, 64-bit GNU Ada for Windows build.

15sep22:
.) converted to GNU Ada.

16may22:
.) eliminated W32 build due to poor compiler support.


#############################################################
##16apr22:  delivered v1.9.2 to git,SF,Indi,Itchi,Jolt,FSF ##
#############################################################

14apr22:
.) converted gnu-libs to all shared to enhance portability
	of both build-scripts and executables.


18jan22:
.) Updated zoomwheel.adb to respect zmin, zmax.


#############################################################
##19jan22:  delivered v1.9.1 to git,SF,Indi,Itchi,Jolt,FSF ##
#############################################################

16jan22:
.) tried sl79 linux static libfreetype.a, libpng16.a
	and they work fine.

8jan22:
.) updated to GLFW v3.3.6;
	updated linux script;
	updated libs (osx,gnu,wxx);
	added glfw.txt identifying as v3.3.6.


4dec21:
.) Delivered to F.S.F. latest version from S.F.

##########################################################
##14nov21:  delivered v1.9.0 to github,SF,Indie,Itchi ##
##########################################################

9nov21:
.) changed paths within reliquarium.adb
	gnat, gnu, w32, w64 all work perfectly from
	any directory. Rebuilt w64,w32,gnat,gnu.

2nov21:
.) removed mipmap statement in stex.adb that
	occasioanally generated an OpenGL error.

22oct21:
.) updated 64-bit glext.lib

21oct21:
.) removed libs/w32/libopenal32.a;
.) adjusted w32cmp.bat to reference
	bin/w32/openal32.dll instead.
	This same fix was implemented in rcube.


##########################################################
##20oct21:  delivered v1.8.9 to github,SF,Indie,Itchi ##
##########################################################

20oct21:
.) Now buildable under GNAT & all versions of AdaCore Ada.

19oct21:
.) generated Win32 build, too.

13oct21:
.) removed hardcoded references to jan2020, glfw331,
	that appeared in terminal comments.
	Current version is v3.3.4.

10oct21:
.) improved tomb2 to match others;
.) further improved separation by careful
	adjustment of spacing parms.

9oct21:
.) updated to latest glfw3.dll, from avent.
.) updated gnu/libglfw* (from avent).

##########################################################
##9oct21:  delivered v1.8.8 to github,SF,Indie,Itchi ##
##########################################################

9oct21:
.) improved my separation scheme to reference
	the "corner" cubelet, rather than PP-centroid.
	(except for tomb2).
.) fixed GLerror message in Linux.

8oct21:
.) added option to toggle numerals ("n").
.) added scheme to visually separate puzzle pieces from each
	other, but keep constituent cubelets close.

14may21:
.) added handling of standard window close event.


##########################################################
##20feb21:  delivered v1.8.7 to github,SF,Indie,Itchi ##
##########################################################

20feb21:
.) upgraded to OpenAL sound.
	Had to correct WAV files using Sox.
.) modified compilation scripts appropriately.

##########################################################
##27oct20:  delivered v1.8.6 to github,SF,Indie,Itchi ##
##########################################################

24oct20:
.) Simplified by removing SFML completely;
.) Updated to use intrinsic transient sound players:
	.) aplay for linux;
	.) afplay for OSX;
	.) PlaySound() on Windows.
	All tested Ok: build & run.


02jul20:
.) updated all glfw libs to v3.3.2.

16may20
.) considered but discarded:
	simplification: to test whether pieces fit into a
	particular configuration: tally the interior cells
	as I fill the interior with with all pieces to see 
	if any cell within the interior has been filled 
	more than once...WAIT, this only easy for tomb6.
	maybe for tomb5 which uses half of 2x2x2; 
	tomb4 is too irregular w/3 types of blocks.
	see tomb6x.adb
-------------------------------------------------------


##########################################################
##17apr20:  delivered v1.8.5 to github,SF,Indie,Itchi ##
##########################################################

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

5apr20:
.) added move-sound toggle (v-key)

4apr20:
.) improved alsa player to read WAV file while "protected"

##########################################################
##3apr20:  delivered v1.8.4 to github,SF,Indie,Itchi ##
##########################################################

2apr20:
.) Updated to newer & faster linux alsa player.

29mar20:
.) updated to latest sfmlFake library that is 100% Ada,
	but otherwise similar to previous lib. It uses
	an Ada alsa player accessed via an ada task,
	with no sound latency.
	See ~/alsaSound/minFakeAlsa/.
	Use lcmpd.sh to build this.


15mar20:
.) converted data/*.wav to 16-bit signed int, stereo
	with sample rate of 44.1k Hz. to allow using
	iplay.cpp. MUST make stereo.
.) got new system [with sound loops enabled] working;
	although sound loops are not used here for relic.
	Latency now seems minimal and negligible.
	Probably should redeliver with sounds enabled on linux.


##########################################################
##10mar20:  delivered to github,SF,Indie,Itchi ##
##########################################################

10mar20:
.) replaced applause.ogg with applause.wav
	because "aplay" does NOT handle OGG files.
.) FTTB: I no longer play slide sounds, whoosh
	or brick, on linux.  I find latency very annoying.

##########################################################
##18jan20:  delivered to github,SF,Indie,Itchi ##
##########################################################

18jan20:
.) Greatly improved linux portability by removing SFML

12jan20:
.) now include libm/libz in linux version;
	This is likely to enhance portability.

10jan20:
.) updated to glfw v3.3.1


##########################################################
## 5jan20:  redelivered README to github,SF,Indie,Itchi ##
##########################################################

5jan20:
.) clarified README.md
.) screens now announce level of difficulty;


###########################################################
## v1.8.1  4jan20 delivery: github,SF,Jolt,Indi,Itchi ##
###########################################################


4jan20:
.) Corrected an ERROR on help screen.
.) Added FreeFonts (TTF)
.) Much nicer help screen...
.) added missing dll in bin\win\
.) updated reliquarium.adb to act properly on OSX
	by adding procedure emptyEventQueue.


31dec19:
.) Updated build scripts...check w32ming/hide/
	to see if it can be deleted.  also to see if
	I actually need -lz in the script.


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


###########################################################
## v1.8.0  20dec19 delivery: github, SF ##
###########################################################

27dec19:
.) improved/simplified code restructuring to get all 
	utils together in gameutils.  Pretty nice now.

26dec19:
.) converted to GLFW3.


###########################################################
## v1.7.0  20dec19 delivery: github,indie,itch, SF, Jolt ##
###########################################################

19dec19:
.) updated to SDL2 v2.0.10, including binding, libs, scripts.
.) Fixed reliquarium.adb to handle being in root directory ~/relic/.


28nov19:
.) reduced size of:  granite*.png, medusa*.png


###########################################################
## v1.6.9  26nov19 delivery: github,indie,itch, SF, Jolt ##
###########################################################

26nov19:
.) Upgraded linux mint and discovered linux games library problems.
.) Repaired a library problem with GNU/Linux build that limited portability.
	.) removed libm*
	.) added libpng*


24jun19:
.) updated Ada binding to SDL2;

23jun19:
.) moved *.ad? to ./src/

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

4mar19:
.) Changed axis labels to High Contrast font;
.) slight darkening of bkgd.

8jan19:
.) generalized tomb* exes so that they can be run
	from either of 2 directories:  ./relic/
	or ./relic/bin/gnu/
	or ./relic/bin/win/

8jan19:
.) tried & failed to use gnat.os_lib.spawn, rather
	than my SysUtils.Shell method.
.) My intent was to insure a blockingShell.
	However, I think it must be, since the nexus
	window is NOT restored until after the puzzle
	is exitted.

7jan19:
.) FAILed/removed:  tried to allow escape key
	at outer level.  See reliquarium.adb

###########################################################
## v1.6.7  7jan19 delivery: github,indie,itch, SF, Jolt ##
###########################################################

1jan19:
.) added handler for closeWindow event "x"
	in main nexus window.

###########################################################
## v1.6.6  13dec18 delivery: github,indie,itch, SF, Jolt ##
###########################################################

13dec18:
.) Now using SDL v2.0.8;

7dec18:
.) added zoom keys n/a (Nearer/Away)
.) revised linux compile script to use libsnd4ada.so,
	which elliminates need for asound, sndio...
	Thus, enhanced linux portability.


###########################################################
## v1.6.5  29nov18 delivery: github,indie,itch, SF, Jolt ##
###########################################################


27nov18:
.) announced on GOL;

17aug18:
.) converted all to sdl207;


28jul18:
.) completely purged SFML242 !



###########################################################
## v1.6.4  26jul18 delivery: github,indie,itch, SF, Jolt ##
###########################################################

24jul18:
.) now, <c>-key cycles thru 4 distinct skin colors;

19jul18:
.) now, skull is rendered as transparent, and last;
.) revised intro screen;

18jul18:
.) made alternate skin for Medusa using numeral-faced 
	cubelets	that have a chiselled granite texture 
	rather than the colored numerals.  
	Added Medusa warning!

2jul18:
.) Added local linux libm, libz shared libraries
	to enhance portability across linux variants.


####################################################
## v1.6.3  1apr18 delivery: github,indie,itch, SF ##
####################################################


30mar18:
.) simplified OSX builds using static libs.
.) adjusted text size

12mar18:
.) refined, clarified selection screen geometry.
.) un-inverted all PNG files.
.) changed codes in pictobj(txuv).

10mar18:
.) improved names in matutils.

2mar18:
.) fixed utex.adb so rods3b.png, noto.png, & dyslx.png 
	no longer need to be inverted.


18feb18:
.) now using nicer noto.png font

################################################################
#### v1.6.2  24nov17 delivery: github,indie,itch, SF ###########
################################################################


22nov17:
.) found that sdl key responses seem to "leak" back 
	to parent program.  Thus, we now use different 
	keys to exit child and parent.
.) Windows problems:
	.) text does not fit small window...FIXED
	.) when exitting t2, t2 immediately restarted again?
		...seems like persistent mouse pick...
		similar to the key-leak...FIXED


22nov17:
.) eureka!  Found fix online to the problem with 
	SDL v2.0.7 and with v2.0.8 of the erroneous warning 
	of ApplePersistenceIgnoreState.	Note sdl208 is not 
	released yet but is found under "mercurial", 
	BUT even that does not yet have this fix.

.) Consequently, I plan to update to SDL207 for 
	Windows and Linux, and to SDL208+ for OSX.
	These all utilize the interface for 207.



21nov17:
.) Elliminated need for soft directory links since we have
	a fixed directory structure, and I detect MacOSX by
	the fixed directory name so I know that data is at
	../../../data/ for that OS, and for the other two it is
	../../data/.
.) only trouble is that sdl_raisewindow does not seem to
	return focus on OSX if I lower the selection screen.
	Note that this focus related issue has probably
	been fixed in a version of SDL more recent than v2.0.3.
	Indeed!!  This works perfectly using v2.0.7,
	except for the ApplePersistenceIgnoreState problem.
	DELAY UPDATES UNTIL SDL 208, ASSUMING BOTH PROBLEMS GONE.

20nov17:
.) replaced daisy-chain executions with looping 
	inside nexus for a more normal program structure
	where nexus window minimizes while puzzling.

################################################################
#### v1.6.1 19nov17 delivery: github,indie,itch, SF ###########
################################################################


18nov17:
.) downdated to sdl203

17nov17:
.) added "<esc> to quit" on window
.) temporarily updated to sdl207...but
.) my osx now gives an annoying message, 
	which, I believe, can be ignored, that says
	ApplePersistenceIgnoreState: ...etc,etc
.) NOTE:  above problem disappears completely 
	[on OSX] when restoring	sdl203 !!!
	I need to double check that libs for 207 on OSX
	are correct...YES it is.
	Now, check whether there is another pre-built
	lib for osx...only in framework form, and
	they have same problem.


15nov17:
.) added quotation marks surrounding path to allow embedded blanks;

12nov17:
.) hid windows exes in ./bin/win/
.) updated scripts *.bat.
.) updated documentation.


################################################################
#### v1.6.0 11nov17 delivery: github,indie,itch, SF ###########
################################################################


10nov17:
.) cleaned up InitSDL code.

7nov17:
.) Fixed/improved sizing versus actual window height;
.) Noted a very small, tolerable memory leak experienced
	when opening & closing many instances of puzzles
	without quitting.  (C++ rufaslider has similar,
	but much worse problem)

6nov17:
.) restructured gnu binaries similarly to rslid, osx.
	Use reliquarium_gnu to initiate.

4nov17:
.) !!! now compiles/runs on MSwin !!!
	...just need some dlls collocated w/exe.
	Also needed glext.lib (sourceforge glext-win32),
	and glfw, sfml libs for win32;
	and libz.a for win32.



19oct17:
.) elliminated libjpeg.a, freetype.framework

13oct17:
.) amended scripts to reference ./*.sh rather than *.sh

4jul17:
.) modified *.sh to avoid large exe in ~/obj/

3jul17 (mini):
.) updated linux scripts to use AdaCore 2017 as well as
	updated SFML 2.4.2 libs.
.) revised lcmp16.sh script for linux;
.) put older linux libs into ~/libs/gnu16


2jul17 (mini):
.) added OGL version query to startup messages.
.) added OGL profile queries too.



################################################################
#### v1.5.7 14may17 delivery: github,indie,itch, SF ###########
################################################################

12may17:
.) corrected restart error that replicated window;
.) corrected key responses to wait for block motions;
.) now call sdl_getkeyboardstate after each sdl_pumpevents call.
	I think this is the correct way to handle the update
	of keyboard events.  
	Smoothed and corrected input response.



################################################################
#### v1.5.6 10may17 delivery: github,indie,itch, SF ###########
################################################################


8may17:
.) redesigned code structure to allow separate executables
	and return to nexus-app.  Each can be called directly
	too.  Now that the OS-X binaries are hidden in their
	own directory, we can drop the extensions _osx, _gnu.

################################################################
#### v1.5.5 6apr17 delivery: github,indie,itch, SF ###########
################################################################

28feb17:
.) removed OGL 3.3-deprecated glshademodel-function.


17feb17:
.) elliminated utex-load*
.) added full error checking in shader.adb following example
	from C++:
	.) checks vshader compilation;  gives error message;
	.) checks fshader compilation;  gives error message;
	.) checks shader program link;  gives error message;


################################################################
#### v1.5.4 3jan17 delivery: github,indie,itch, SF ###########
################################################################

3jan17:
.) minor error message (libopenal.a) corrected by
	using shared lib.


1jan17:
.) PROBLEM:  multiple windows appear upon selection???
.) Fixed erroneous multiple windows due to multisample logic.
.) refined scripts.


################################################################
#### v1.5.3 dec16 delivery: github,indie,itch ###########
################################################################

12dec16:
.) updated to use new generic snd4ada.cpp.
.) Improved build system to be compatible with more linux distros.
.) Improved OpenGL coding to run on less capable graphics hardware.


################################################################
#### v1.5.2 14jul16 delivery: github,indie,itch,S.F. ###########
################################################################
....... also announced update on Google+ ...see what happens...
...if noticeable, make sure to announce all other games...


10jul16:
.) cleaned up gametypes code (reduced to single instance).

27apr16:
.) updated snd4ada.cpp to use dynamic SFML allocation per AdaGate.

19apr16:
.) shortened brick & whoosh sounds to 1/4 sec.
	better match for block moves.
.) sound brick: t2,t6
.) sound whoosh: t4,t5

########################################################################
12apr16: redelivery v1.5.1 to:  itch.io,indieDB,github,S.F.#############

11apr16:
.) important fix:  73% no problem
	added softlinks for ogg vorbis flac so runtime linker
	would use local copies.  

5apr16:
.) revised compilation directory structure
.) repaired error in data...ogg formats are invalid on osx
	with this older version of sfml.



29mar16: deliver v1.5 to itch.io #####################################
29mar16: deliver v1.5 to github ######################################
29mar16: deliver v1.5 to happypenguin ################################
6mar16: deliver v1.5 to S.F.          ################################

6mar16:
.) Added yet another impediment to the t4 puzzle:  two more 1x1x1
	cubelets that enhance the final symmetry, and add to the confusion
	and difficulty.  It is still solvable.  
	Required a renumbering of pieces.


5mar16 ============== v1.4 to S.F. ===================================

4mar16:
.) Discovered a solution to t4 even when 7,8 become L's with rearward
	projection.
.) Thus, T4 is now much harder!
.) Space-key now restarts puzzle.

21feb16 ============= delivered v1.3 to S.F. ===========================


21feb16:
.) made into a single app;
.) generated relic.iconset;
.) made MacBundle;
.) prepped release;  try on osx.


25jan16 ============= delivered to S.F. ===========================

25jan16
.) found and fixed block move logic errors.

23jan16
.) added smooth moves to all 4.
.) corrected error in proximity pick logic.

23jan16
.) added shriek to medusa climax.
.) tried concrete sound for block moves but failed.
	After much trouble to slow down the movements
	to match the sound, it became much too annoying to
	tolerate the delays while trying to solve.
.) reduced volume of whoosh.

22jan16 ============= delivered to S.F. ===========================

21jan16
.) initiated construction of tomb2 = HIO
	...looks good...and is a genuine puzzle.
	Actually, my tomb4 is even harder.
.) added auto-select of 1st feasible isel
.) added block selection using either 
	a) mouse right click, or
	b) 2-finger click on MacBook.


19jan16
.) combined all 3 versions here.
.) T5,T6: perhaps too easy for serious puzzlers, but Ok for kids.


