the 3 major errors in Project Six 6-0-3 v6.2.1:
- 1. the "#defines" used to include source codes
- 2. "using fb.graphics"
- 3. passing empty UDT arrays.
Example Code No.1:
#define __SOURCE_PATH__ ../Project Six 6-0-3 (!__Alisha_version!)/
#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 )
Example Code No.2:
VGA_Load ( VGA_Table ( ), Gamepack )
Do
'Gamepack_Main ( Gamepack_Data ( ), Gamepack )
Story_Main ( Pages ( ) )
Loop
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 )
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.
Notice in example No.4 the following breaks the compile due to undefined behaviors.
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 )
Swap Dest, Source
Dim AS Double LevelsR = 0.43, LevelsG = 0.53, LevelsB = 0.33,LevelsTotal = 1.0, aA = 1.0
aA = A / 255.0
LevelsTotal = LevelsR + LevelsG + LevelsB
LevelsR = LevelsR * LevelsTotal / 3.0
LevelsG = LevelsG * LevelsTotal / 3.0
LevelsB = LevelsB * LevelsTotal / 3.0
LevelsTotal = 1.0
If Dest = 0 Then Exit Sub
Dim As Long pX = 0, pY = 0, pC = 0, pA = 0
Dim As Double pAC = 0.0
Dim As Long pAC2 = 0
For pY = 0 To Dest -> Height - 1 Step 1
For pX = 0 To Dest -> Width - 1 Step 1
pC = Point( pX, pY, Source )
pAC = ( RGBAr( pC ) * LevelsR + RGBAg( pC ) * LevelsG + RGBAb( pC ) * LevelsB )
pAC2 = RGBA ( RGBAr( pC ) * pAC, RGBAg( pC ) * pAC, RGBAb( pC ) * pAC, pA )
If RGBAa( pC ) <> 0 Then
PSet Dest, ( pX, pY ), RGBA( pAC, pAC, pAC, pAC2 )
End If
Next pX
Next pY
Source = ImageDestroy2 ( Source )
End Sub
Include2( , fbgfx, .bi )
using Fb
[5:14 PM]
April 10, 2023
NeinstarFilmƶ — 04/10/2023 6:46 PM
Function SimplePrompt ( Msg As String = "", VGA As LongInt = &HFFFFFFFF, VGA_Mask AS LongInt = &HFFFFFFFF ) As String
Dim As String C, CI : C = "" : CI = ""
With __Alisha_
Dim As LongInt VGA2 = VGA_Lookup2 ( VGA, VGA_Mask, ._VGA_Table ( ) )
If Len ( Msg ) > 0 Then
Draw String ( ( Pos - 1 ) Shl 3, ( CsrLin - 1 ) Shl 3 ), Msg, VGA2
Locate CsrLin, Pos + Len ( Msg )
End If
Do
CI = Inkey ( )
Select Case Len ( CI )
Case 1
Select Case CI
Case BKSP
If Len ( C ) > 0 Then
C = Left ( C, Len ( C ) - 1 )
Line ( ( Pos - 1 ) Shl 3, ( CsrLin - 1 ) Shl 3 ) - Step ( 7, 7 ), 0, BF
Locate CsrLin, Pos - 1
Flip
End If
Case CR
Return C
Case ESC
Return CI
Case Else
Select Case Asc ( CI )
Case 32 To 126
C &= CI
Draw String ( ( Pos - 1 ) Shl 3, ( CsrLin - 1 ) Shl 3 ), CI, VGA2
Locate CsrLin, Pos + 1
Flip
End Select
End Select
End Select
Wait 1, 1
Loop
End With
End Function
The above code crashes my Storybook 7 engine and I do not grasp why. (edited)
April 15, 2023
grymmjack — 04/15/2023 12:32 PM
@NeinstarFilmƶ where is it crashing? you didn't really provide a lot of context. which part is it crashing on?
April 17, 2023
NeinstarFilmƶ — Yesterday at 10:27 AM
"Wait 1,1" is the error
[10:28 AM]
Should be "Sleep 1,1"
NeinstarFilmƶ — Yesterday at 10:41 AM
Wait is causing it to crash erratically.
[10:47 AM]
No idea what wait is doing tho.
NeinstarFilmƶ — Yesterday at 12:05 PM
"Wait" was inducing some kind of IRQ/TSR condition. (edited)
[12:06 PM]
The intended command was Sleep 1,1
April 18, 2023
NeinstarFilmƶ — Today at 8:40 AM
Another error was with the VGA palette code.
NeinstarFilmƶ — Today at 9:57 AM
(VGA _Lookup2)
NeinstarFilmƶ — Today at 10:06 AM
It was attempting to implement a bogus palette file.
[10:09 AM]
I guess I need to add a range check.
NeinstarFilmƶ — Yesterday at 10:20 AM
For example:
If Index < LBound ( VGA_Table, 1 ) Or Index > UBound ( VGA_Table, 1 ) Then Return Index (edited)
NeinstarFilmƶ — Yesterday at 3:38 PM
Now there is an error for all occurances of "PageIndex".