"Story 05a" DevKit ReadMe

Mon 04/10/2023 23:04:04.10

2

the 3 major errors in Story 05a v6.2.1:

  1. 1. the "#defines" used to include source codes
  2. 2. "using fb.graphics"
  3. 3. passing empty UDT arrays.
3

Example Code No.1:

#define __SOURCE_PATH__ ../Story 05a (v0-0-5a)/
#define __FB_PATH__ 
#define __Include(_s) #Include Once #_s
#define Include2(_l,_m,_r) __Include(_l##_m##_r)
Include2( __SOURCE_PATH__ , ./FBImage , .bi )
using Fb.Graphics
Include2( __FB_PATH__ , fbgfx , .bi )
4

Example Code No.2:

VGA_Load ( VGA_Table ( ), Gamepack )
Do
	'Gamepack_Main ( Gamepack_Data ( ), Gamepack )
	Story_Main ( Pages ( ) )
Loop
5

Example Code No.3:

/'
Print "DevKit Story v6.2 Core / Gfx Manip / Gfx Manip"
Flip : WaitKey ( )
End
'/
Include2( __SOURCE_PATH__ , "./Core/Code/RGBA Macro" , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Memory Management , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Text , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Validate Display , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Make Fill , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/vBox , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Inlay , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Flip , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Shift , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Stretch , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Make Seamless , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Fill , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Repeat , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Wallpaper , .bas )
Include2( __SOURCE_PATH__ , ./Core/Code/Gfx Manip/Buffer Alpha , .bas )
6

Notice In examples No.1, No.2 & No.3; all 3 errors occur right off the bat, 2 of-which recur throughout the rest of the engine.

7

Notice in example No.4 the following breaks the compile due to undefined behaviors.

8

Example Code No.4:

#IFDEF __STORY_DEBUG__
Print "Story DevKit v6.2.1 Core / Gfx Manip / Buffer Alpha"
Flip : WaitKey ( )
#ENDIF
Declare Sub Gfx_Buffer_Alpha ( ByRef Dest As FB.Image Ptr, A As Long = 0 )
Sub Gfx_Buffer_Alpha ( ByRef Dest As FB.Image Ptr, A As Long = 0 )
	Dim As FB.Image Ptr Source = ImageCreate( Dest -> Width, Dest-> Height, RGBA ( 0, 0, 0, 0 ), 32 )
ECHO is off.
	Swap Dest, Source
	Dim AS Double LevelsR = 0.43, LevelsG = 0.53, LevelsB = 0.33,LevelsTotal = 1.0, aA = 1.0
ECHO is off.
	aA = A / 255.0
ECHO is off.
	LevelsTotal = LevelsR + LevelsG + LevelsB
ECHO is off.
	LevelsR = LevelsR * LevelsTotal / 3.0
	LevelsG = LevelsG * LevelsTotal / 3.0
	LevelsB = LevelsB * LevelsTotal / 3.0
ECHO is off.
	LevelsTotal = 1.0
ECHO is off.
	If Dest = 0 Then Exit Sub
	Dim As Long pX = 0, pY = 0, pC = 0, pA = 0
ECHO is off.
	Dim As Double pAC = 0.0
	Dim As Long pAC2 = 0
ECHO is off.
	For pY = 0 To Dest -> Height - 1 Step 1
	For pX = 0 To Dest -> Width - 1 Step 1
ECHO is off.
		pC = Point( pX, pY, Source )
ECHO is off.
		pAC = ( RGBAr( pC ) * LevelsR + RGBAg( pC ) * LevelsG + RGBAb( pC ) * LevelsB )
ECHO is off.
		pAC2 = RGBA ( RGBAr( pC ) * pAC, RGBAg( pC ) * pAC, RGBAb( pC ) * pAC, pA )
ECHO is off.
		If RGBAa( pC ) <> 0 Then
			PSet Dest, ( pX, pY ), RGBA( pAC, pAC, pAC, pAC2 )
ECHO is off.
		End If
ECHO is off.
	Next pX
	Next pY
ECHO is off.
	Source = ImageDestroy2 ( Source )
ECHO is off.
End Sub