Code archives/File Utilities/Basic Game Ini File
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This is my Ini file code from Easter Bonus. You can change the parameters as you see fit but the basic concept is an easy way to store values in a file that you can edit in notepad. | |||||
;Ini Variables
Global IniMusic = 1
Global IniSound = 1
Global IniMusicVolume# = 100 ;in percent
Global IniSoundVolume# = 100 ;in percent
Global IniFade = 1
Global IniFlipFalse = 0
Global Ini16BitGraphics = 0
Global IniWindowedMode = 1
Global IniLockKeys = 0
Global IniGrid = 1 ;always on
Global IniAlphaBlend = 0 ;always off
Global IniParticles# = 80
Global IniInstructionsAtStart = 1
Global IniShowPortalSplash = 0
; -----------------------------------------------------------------------------
; Read Ini File
; -----------------------------------------------------------------------------
Function IniFileRead(filename$)
;load the ini file settings into global variables
ThePath$ = filename + ".ini"
Local ini = ccLoadFile(ThePath)
Local l$
Local flag$
Local Value$
While Not Eof(ini)
l$ = ReadLine(ini)
flag$ = Upper(ccIniFirstString(l$))
Value$ = ccIniLastString(l$)
num% = Int(Value)
Select True
Case flag$ = "MUSIC"
IniMusic = num
Case flag$ = "SOUND"
IniSound = num
Case flag$ = "MUSIC VOLUME"
IniMusicVolume = num
Case flag$ = "SOUND VOLUME"
IniSoundVolume = num
Case flag$ = "FADE"
IniFade = num
Case flag$ = "FLIP FALSE"
IniFlipFalse = num
Case flag$ = "16BIT GRAPHICS"
Ini16BitGraphics = num
Case flag$ = "WINDOWED MODE"
IniWindowedMode = num
Case flag$ = "PARTICLES"
IniParticles = num
Case flag$ = "INSTRUCTIONS AT START"
IniInstructionsAtStart = num
Case flag$ = "SHOW PORTAL SPLASH"
IniShowPortalSplash = num
Default
End Select
Wend
CloseFile(ini)
End Function
; -----------------------------------------------------------------------------
; Write Ini File
; -----------------------------------------------------------------------------
Function IniFileWrite(filename$)
;write the ini file settings from global variables
ThePath$ = filename + ".ini"
Local ini = WriteFile(ThePath)
Local l$
Local flag$
Local Value$
ccWriteIniNumber(ini, "MUSIC", IniMusic)
ccWriteIniNumber(ini, "SOUND", IniSound)
ccWriteIniNumber(ini, "MUSIC VOLUME", IniMusicVolume)
ccWriteIniNumber(ini, "SOUND VOLUME", IniSoundVolume)
ccWriteIniNumber(ini, "FADE", IniFade)
ccWriteIniNumber(ini, "FLIP FALSE", IniFlipFalse)
ccWriteIniNumber(ini, "16BIT GRAPHICS", Ini16BitGraphics)
ccWriteIniNumber(ini, "WINDOWED MODE", IniWindowedMode)
ccWriteIniNumber(ini, "PARTICLES", IniParticles)
ccWriteIniNumber(ini, "INSTRUCTIONS AT START", IniInstructionsAtStart)
ccWriteIniNumber(ini, "SHOW PORTAL SPLASH", IniShowPortalSplash)
CloseFile(ini)
End Function
; -----------------------------------------------------------------------------
; Load a file and show error if not found
; -----------------------------------------------------------------------------
Function ccLoadFile% (ThePath$)
pointer = ReadFile(ThePath$)
If Not pointer Then
RuntimeError ("Error loading file "+ThePath$)
End
Else
Return Pointer
EndIf
End Function
; -----------------------------------------------------------------------------
; IniFirst String (return first part of string up to = sign)
; -----------------------------------------------------------------------------
Function ccIniFirstString$(s$)
;pass in a string, this will only return the first part up to, but not including, the = sign (or end)
Return ccFirstStringToSub(s$, "=")
End Function
; -----------------------------------------------------------------------------
; IniLast String (return last part of string from = sign)
; -----------------------------------------------------------------------------
Function ccIniLastString$(s$)
;pass in a string, this will only return the last part from, but not including, the = sign
Return ccLastStringToSub(s$, "=")
End Function
; -----------------------------------------------------------------------------
; ccWriteIniNumber
; -----------------------------------------------------------------------------
Function ccWriteIniNumber(ini%, flag$, value%)
;use this to write flag=number to an ini file
WriteLine(ini, Upper(flag)+"="+Str(value))
End Function
; -----------------------------------------------------------------------------
; ccWriteIniString
; -----------------------------------------------------------------------------
Function ccWriteIniString(ini%, flag$, value$)
;use this to write flag=string to an ini file
WriteLine(ini, Upper(flag)+"="+value$)
End Function
; -----------------------------------------------------------------------------
; First String To Sub (return first part of string up to Substring)
; -----------------------------------------------------------------------------
Function ccFirstStringToSub$(s$, sub$)
;pass in a string, this will only return the first part up to, but not including, the substring (or end)
pos% = Instr(s$, sub$)
;If pos = 0 then then end of the was reached, so return the whole thing.
If pos = 0 Then
Return s$
Else
Return Mid(s$, 1, pos-1)
EndIf
End Function
; -----------------------------------------------------------------------------
; Last String To Sub (return last part of string from substring)
; -----------------------------------------------------------------------------
Function ccLastStringToSub$(s$, sub$)
;pass in a string, this will only return the last part from, but not including, the substring
pos% = Instr(s$, sub$)
;If pos = 0 then then end of the was reached, so return nothing
If pos = 0 Then
Return ""
Else
Return Mid(s$, pos + Len(sub$), Len(s$)-pos)
EndIf
End Function |
Comments
None.
Code Archives Forum