Merge pull request #21 from n00b87/fix_alpha4_bugs

Fix alpha4 bugs
This commit is contained in:
Rodney Cunningham
2024-12-07 11:59:03 -05:00
committed by GitHub
33 changed files with 2672 additions and 4439 deletions

View File

@@ -0,0 +1,48 @@
#!/bin/bash
BASEDIR=$(dirname 0)
cd $BASEDIR
RCBASIC_BUILD_ERROR=2
RCBASIC_RUNTIME_ERROR=2
export RCBASIC_BUILD_MAIN_DIR=/home/n00bc0de/Projects
export RCBASIC_BUILD_JOURNAL=build_journal.sh
#RCBASIC_BUILD
if [ -e $RCBASIC_BUILD_JOURNAL ]
then
rm $RCBASIC_BUILD_JOURNAL
fi
touch build_journal.sh
chmod +x build_journal.sh
pushd $BASEDIR/RCBASIC4/rcbasic_build
./build.sh
popd
source $RCBASIC_BUILD_JOURNAL
echo "RCBASIC_BUILD STATUS = $RCBASIC_BUILD_ERROR"
#RCBASIC_RUNTIME
if [ $RCBASIC_BUILD_ERROR == 0 ]
then
pushd $BASEDIR/RCBASIC4/rcbasic_runtime
./build.sh
popd
source $RCBASIC_BUILD_JOURNAL
echo "RCBASIC_RUNTIME STATUS = $RCBASIC_RUNTIME_ERROR"
fi
echo "rcbasic_build status=$RCBASIC_BUILD_ERROR"
echo "rcbasic_RUNTIME status=$RCBASIC_RUNTIME_ERROR"

View File

@@ -0,0 +1,25 @@
#!/bin/bash
BASEDIR=$(dirname 0)
echo "build journal path: $RCBASIC_BUILD_JOURNAL"
codeblocks --clean rcbasic_build.cbp
codeblocks --target=Release --build rcbasic_build.cbp
if [ ! -e $BASEDIR/bin/Release/rcbasic_build ]
then
pushd $RCBASIC_BUILD_MAIN_DIR
echo "export RCBASIC_BUILD_ERROR=1" >> $RCBASIC_BUILD_JOURNAL
popd
else
pushd $RCBASIC_BUILD_MAIN_DIR
echo "export RCBASIC_BUILD_ERROR=0" >> $RCBASIC_BUILD_JOURNAL
popd
fi

View File

@@ -0,0 +1,25 @@
#!/bin/bash
BASEDIR=$(dirname 0)
echo "build journal path: $RCBASIC_BUILD_JOURNAL"
codeblocks --clean rcbasic_runtime.cbp
codeblocks --target=Release --build rcbasic_runtime.cbp
if [ ! -e $BASEDIR/bin/Release/rcbasic_runtime ]
then
pushd $RCBASIC_BUILD_MAIN_DIR
echo "export RCBASIC_RUNTIME_ERROR=1" >> "$RCBASIC_BUILD_JOURNAL"
popd
else
pushd $RCBASIC_BUILD_MAIN_DIR
echo "export RCBASIC_RUNTIME_ERROR=0" >> "$RCBASIC_BUILD_JOURNAL"
popd
fi

View File

@@ -85,8 +85,6 @@ ul, #myUL {
<li><a href="input.html" target="main">Input$</a></li>
<li><a href="tst.html" target="main">tst</a></li>
</ul>
</li>
@@ -1149,7 +1147,7 @@ ul, #myUL {
<li><a href="readinput_stop.html" target="main">ReadInput_Stop</a></li>
<li><a href="readinput_text.html" target="main">ReadInput_Text$</a></li>
<li><a href="readinput_gettext.html" target="main">ReadInput_GetText$</a></li>
<li><a href="readinput_settext.html" target="main">ReadInput_SetText</a></li>
@@ -2089,6 +2087,10 @@ ul, #myUL {
<li><a href="getworld3dtimestep.html" target="main">GetWorld3DTimeStep</a></li>
<li><a href="setscenefog.html" target="main">SetSceneFog</a></li>
<li><a href="getscenefog.html" target="main">GetSceneFog</a></li>
</ul>
</li>

View File

@@ -0,0 +1,4 @@
#title ReadInput_GetText$ [RCBasic Doc]
#header function ReadInput_GetText$()

View File

@@ -1 +1 @@
,n00b,fedora,15.11.2024 20:29,file:///home/n00b/.config/libreoffice/4;
,n00b,fedora,25.11.2024 14:22,file:///home/n00b/.config/libreoffice/4;

View File

@@ -1,6 +1,5 @@
rc_fprint( FPRINT_TXT$ )
rc_input( INPUT$_PROMPT$ )
rc_tst( )
#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_arrayDim.h
#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_stringArrayDim.h
#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_numberArrayDim.h
@@ -444,7 +443,7 @@ rc_setClipboardText( SETCLIPBOARDTEXT_TXT$ )
rc_hasClipboardText( )
rc_readInput_Start( )
rc_readInput_Stop( )
rc_readInput_Text( )
rc_readInput_GetText( )
rc_readInput_SetText( READINPUT_SETTEXT_TXT$ )
rc_readInput_ToggleBackspace( READINPUT_TOGGLEBACKSPACE_FLAG )
rc_createSprite( CREATESPRITE_IMG, CREATESPRITE_FRAME_W, CREATESPRITE_FRAME_H )
@@ -866,6 +865,8 @@ rc_setWorld3DMaxSubSteps( SETWORLD3DMAXSUBSTEPS_STEPS )
rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS )
rc_getWorld3DMaxSubSteps( )
rc_getWorld3DTimeStep( )
rc_setSceneFog( SETSCENEFOG_COLOR, SETSCENEFOG_FOG_TYPE, SETSCENEFOG_START_VAL, SETSCENEFOG_END_VAL, SETSCENEFOG_DENSITY, SETSCENEFOG_PIXELFOG, SETSCENEFOG_RANGEFOG )
rc_getSceneFog( &GETSCENEFOG_COLOR, &GETSCENEFOG_FOG_TYPE, &GETSCENEFOG_START_VAL, &GETSCENEFOG_END_VAL, &GETSCENEFOG_DENSITY, &GETSCENEFOG_PIXELFOG, &GETSCENEFOG_RANGEFOG )
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR )
rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR )
rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z )

View File

@@ -1,3 +1,2 @@
sub Fprint(txt$)
function Input$(prompt$)
sub tst()

View File

@@ -6,3 +6,5 @@ sub SetWorld3DMaxSubSteps( steps )
sub SetWorld3DTimeStep( ts )
function GetWorld3DMaxSubSteps()
function GetWorld3DTimeStep()
Sub SetSceneFog(color, fog_type, start_val, end_val, density, pixelFog, rangeFog)
Sub GetSceneFog(ByRef color, ByRef fog_type, ByRef start_val, ByRef end_val, ByRef density, ByRef pixelFog, ByRef rangeFog)

View File

@@ -1,5 +1,5 @@
sub ReadInput_Start()
sub ReadInput_Stop()
function ReadInput_Text$()
function ReadInput_GetText$()
sub ReadInput_SetText(txt$)
sub ReadInput_ToggleBackspace(flag)

View File

@@ -916,12 +916,16 @@ int main(int argc, char * argv[])
string rc_filename = "";// = "tst.bas";
bool clean_after_build = false;
bool clean_after_build = true;
//DEBUG START
//rc_filename = "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/bin/Release/unittest.bas";
//rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas";
//rc_filename = "/home/n00b/projects/bu/rcbasic_v400A6_linux/rcbasic_v400_linux/examples/tile_demo/main.bas";
//rc_filename = "/home/n00b/projects/rcbasic_alpha3/test_project/main.bas";
//DEBUG END
//enable_presets = true;
if(argc > 1)
rc_filename = argv[1];
@@ -935,12 +939,12 @@ int main(int argc, char * argv[])
if(cmd_arg.compare("--debug")==0)
{
cout << "DEBUG MODE" << endl;
//cout << "DEBUG MODE" << endl;
rcbasic_build_debug = true;
}
else if(cmd_arg.compare("--no-presets")==0)
{
cout << "DISABLE PRESETS" << endl;
//cout << "DISABLE PRESETS" << endl;
enable_presets = false;
}
else if(cmd_arg.compare("--no-clean")==0)
@@ -951,7 +955,7 @@ int main(int argc, char * argv[])
if(rc_filename.compare("--version")==0)
{
cout << "RCBASIC Compiler v4.0a" << endl;
cout << "RCBASIC Compiler v4.0" << endl;
return 0;
}

View File

@@ -1,65 +0,0 @@
.code
preset$ !0
preset !1
preset_t !0 !0
preset_t !1 !0
preset !2
preset !3
preset !4
preset !5
preset !6
preset !7
preset$ !2
preset !11
preset !12
preset !13
.code
dim_tfield !1 !0 !0 !0 n0 n0 n0
mov n0 8
dim_tfield !2 !2 !0 !1 n0 n0 n0
dim_tfield !2 !0 !1 !0 n0 n0 n0
mov n0 6
dim_type1 !2 !2 n0
mov n0 4
dim_type1 !3 !2 n0
mov n0 4
dim_type1 !4 !2 n0
mov n0 3
mov n1 6
obj_usr_init1 !2 n0
obj_usr1 !0 n1
obj_usr_n !0
obj_usr_get n2
mov n3 13
mov_r n2 n3
mov$ s0 @0
print$ s0
mov n0 3
mov n1 6
obj_usr_init1 !3 n0
obj_usr1 !0 n1
obj_usr_n !0
obj_usr_get n2
print n2
println
mov n0 0
obj_usr_init1 !2 n0
obj_usr_get u0
mov n0 0
obj_usr_init1 !3 n0
obj_usr_get u1
uref_ptr !0 u0
uref_ptr !1 u1
func !17
pop_ptr !2
mov$ s0 @10
print$ s0
mov n0 3
mov n1 6
obj_usr_init1 !3 n0
obj_usr1 !0 n1
obj_usr_n !0
obj_usr_get n2
print n2
println
end

View File

@@ -1,11 +0,0 @@
5
2
3
0
0
0
0
14
3
5
0

Binary file not shown.

View File

@@ -8,7 +8,6 @@ void init_embedded_functions()
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("Input$", ID_TYPE_FN_STR);
add_embedded_arg("prompt$", ID_TYPE_STR);
embed_function("tst", ID_TYPE_SUB);
embed_function("ArrayDim", ID_TYPE_FN_NUM);
add_embedded_arg("id", ID_TYPE_BYREF_NUM);
embed_function("StringArrayDim", ID_TYPE_FN_NUM);
@@ -1275,7 +1274,7 @@ void init_embedded_functions()
embed_function("HasClipboardText", ID_TYPE_FN_NUM);
embed_function("ReadInput_Start", ID_TYPE_SUB);
embed_function("ReadInput_Stop", ID_TYPE_SUB);
embed_function("ReadInput_Text$", ID_TYPE_FN_STR);
embed_function("ReadInput_GetText$", ID_TYPE_FN_STR);
embed_function("ReadInput_SetText", ID_TYPE_SUB);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB);
@@ -2693,6 +2692,22 @@ void init_embedded_functions()
add_embedded_arg("ts", ID_TYPE_NUM);
embed_function("GetWorld3DMaxSubSteps", ID_TYPE_FN_NUM);
embed_function("GetWorld3DTimeStep", ID_TYPE_FN_NUM);
embed_function("SetSceneFog", ID_TYPE_SUB);
add_embedded_arg("color", ID_TYPE_NUM);
add_embedded_arg("fog_type", ID_TYPE_NUM);
add_embedded_arg("start_val", ID_TYPE_NUM);
add_embedded_arg("end_val", ID_TYPE_NUM);
add_embedded_arg("density", ID_TYPE_NUM);
add_embedded_arg("pixelFog", ID_TYPE_NUM);
add_embedded_arg("rangeFog", ID_TYPE_NUM);
embed_function("GetSceneFog", ID_TYPE_SUB);
add_embedded_arg("color", ID_TYPE_BYREF_NUM);
add_embedded_arg("fog_type", ID_TYPE_BYREF_NUM);
add_embedded_arg("start_val", ID_TYPE_BYREF_NUM);
add_embedded_arg("end_val", ID_TYPE_BYREF_NUM);
add_embedded_arg("density", ID_TYPE_BYREF_NUM);
add_embedded_arg("pixelFog", ID_TYPE_BYREF_NUM);
add_embedded_arg("rangeFog", ID_TYPE_BYREF_NUM);
embed_function("startParticleEmitter", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("stopParticleEmitter", ID_TYPE_SUB);

View File

@@ -1,43 +1 @@
embedded_functions.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/conio.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/arrays.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/math.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/strings.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/stacks.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/files.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/directories.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/datetime.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/window.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/canvas.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/prim2d.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/images.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/keyboard.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/audio.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joystick.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/gfxconsole.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/text.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/touch.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/network.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/video.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/system.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/matrix.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/process.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/clipboard.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/textedit.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprites.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_animation.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_physics.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joint2D.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/tilemaps.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/mesh.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_animation.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_physics.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/constraint3D.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/camera.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/scene.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/particles.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/lights.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/terrain.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/water.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/materials.bas
/home/n00b/projects/rcbasic_alpha3/test_project/main.bas

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1728937556 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
1733454209 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
<iostream>
<stack>
<vector>
@@ -54,7 +54,7 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.h>
1729467369 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
1733270962 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
"identifier.h"
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h

View File

@@ -2,17 +2,22 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
<File name="identifier.h" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_builtin.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="30056" topLine="0" />
<Cursor1 position="112317" topLine="2509" />
</Cursor>
</File>
<File name="tokenizer.h" open="1" top="0" tabpos="26" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_global.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="41970" topLine="1016" />
<Cursor1 position="13014" topLine="163" />
</Cursor>
</File>
<File name="parser.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="constants.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="parser.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="99035" topLine="1896" />
</Cursor>
@@ -51,24 +56,9 @@
<Collapse line="6878" />
</Folding>
</File>
<File name="rc_utility.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1747" topLine="56" />
</Cursor>
</File>
<File name="rc_vm_asm.h" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="41761" topLine="1347" />
</Cursor>
</File>
<File name="rc_global.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13014" topLine="163" />
</Cursor>
</File>
<File name="main.cpp" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10783" topLine="908" />
<Cursor1 position="28770" topLine="910" />
</Cursor>
</File>
<File name="keywords.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -76,19 +66,29 @@
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="tokenizer.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="41970" topLine="1016" />
</Cursor>
</File>
<File name="rc_utility.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1747" topLine="56" />
</Cursor>
</File>
<File name="env_resolve.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="615" topLine="32" />
</Cursor>
</File>
<File name="constants.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_vm_asm.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
<Cursor1 position="41761" topLine="1347" />
</Cursor>
</File>
<File name="rc_builtin.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="identifier.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="112317" topLine="2496" />
<Cursor1 position="33082" topLine="992" />
</Cursor>
</File>
</CodeBlocks_layout_file>

View File

@@ -2,7 +2,6 @@ embed_function("Fprint", ID_TYPE_SUB);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("Input$", ID_TYPE_FN_STR);
add_embedded_arg("prompt$", ID_TYPE_STR);
embed_function("tst", ID_TYPE_SUB);
embed_function("ArrayDim", ID_TYPE_FN_NUM);
add_embedded_arg("id", ID_TYPE_BYREF_NUM);
embed_function("StringArrayDim", ID_TYPE_FN_NUM);
@@ -1269,7 +1268,7 @@ add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("HasClipboardText", ID_TYPE_FN_NUM);
embed_function("ReadInput_Start", ID_TYPE_SUB);
embed_function("ReadInput_Stop", ID_TYPE_SUB);
embed_function("ReadInput_Text$", ID_TYPE_FN_STR);
embed_function("ReadInput_GetText$", ID_TYPE_FN_STR);
embed_function("ReadInput_SetText", ID_TYPE_SUB);
add_embedded_arg("txt$", ID_TYPE_STR);
embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB);
@@ -2687,6 +2686,22 @@ embed_function("SetWorld3DTimeStep", ID_TYPE_SUB);
add_embedded_arg("ts", ID_TYPE_NUM);
embed_function("GetWorld3DMaxSubSteps", ID_TYPE_FN_NUM);
embed_function("GetWorld3DTimeStep", ID_TYPE_FN_NUM);
embed_function("SetSceneFog", ID_TYPE_SUB);
add_embedded_arg("color", ID_TYPE_NUM);
add_embedded_arg("fog_type", ID_TYPE_NUM);
add_embedded_arg("start_val", ID_TYPE_NUM);
add_embedded_arg("end_val", ID_TYPE_NUM);
add_embedded_arg("density", ID_TYPE_NUM);
add_embedded_arg("pixelFog", ID_TYPE_NUM);
add_embedded_arg("rangeFog", ID_TYPE_NUM);
embed_function("GetSceneFog", ID_TYPE_SUB);
add_embedded_arg("color", ID_TYPE_BYREF_NUM);
add_embedded_arg("fog_type", ID_TYPE_BYREF_NUM);
add_embedded_arg("start_val", ID_TYPE_BYREF_NUM);
add_embedded_arg("end_val", ID_TYPE_BYREF_NUM);
add_embedded_arg("density", ID_TYPE_BYREF_NUM);
add_embedded_arg("pixelFog", ID_TYPE_BYREF_NUM);
add_embedded_arg("rangeFog", ID_TYPE_BYREF_NUM);
embed_function("startParticleEmitter", ID_TYPE_SUB);
add_embedded_arg("actor", ID_TYPE_NUM);
embed_function("stopParticleEmitter", ID_TYPE_SUB);

File diff suppressed because it is too large Load Diff

View File

@@ -4,9 +4,6 @@ case FN_Fprint: //Sub Procedure
case FN_Input$: //String Function
rc_push_str(rc_input( INPUT$_PROMPT$ ));
break;
case FN_tst: //Sub Procedure
rc_tst( );
break;
case FN_ArrayDim: //Number Function
//DUMMY CASE
@@ -1364,8 +1361,8 @@ case FN_ReadInput_Start: //Sub Procedure
case FN_ReadInput_Stop: //Sub Procedure
rc_readInput_Stop( );
break;
case FN_ReadInput_Text$: //String Function
rc_push_str(rc_readInput_Text( ));
case FN_ReadInput_GetText$: //String Function
rc_push_str(rc_readInput_GetText( ));
break;
case FN_ReadInput_SetText: //Sub Procedure
rc_readInput_SetText( READINPUT_SETTEXT_TXT$ );
@@ -2630,6 +2627,12 @@ case FN_GetWorld3DMaxSubSteps: //Number Function
case FN_GetWorld3DTimeStep: //Number Function
rc_push_num(rc_getWorld3DTimeStep( ));
break;
case FN_SetSceneFog: //Sub Procedure
rc_setSceneFog( SETSCENEFOG_COLOR, SETSCENEFOG_FOG_TYPE, SETSCENEFOG_START_VAL, SETSCENEFOG_END_VAL, SETSCENEFOG_DENSITY, SETSCENEFOG_PIXELFOG, SETSCENEFOG_RANGEFOG );
break;
case FN_GetSceneFog: //Sub Procedure
rc_getSceneFog( &GETSCENEFOG_COLOR, &GETSCENEFOG_FOG_TYPE, &GETSCENEFOG_START_VAL, &GETSCENEFOG_END_VAL, &GETSCENEFOG_DENSITY, &GETSCENEFOG_PIXELFOG, &GETSCENEFOG_RANGEFOG );
break;
case FN_startParticleEmitter: //Sub Procedure
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
break;

View File

@@ -4388,7 +4388,7 @@ int main(int argc, char * argv[])
if(rc_filename.compare("--version")==0)
{
cout << "RCBASIC Runtime v4.0a" << endl;
cout << "RCBASIC Runtime v4.0" << endl;
return 0;
}
@@ -4442,11 +4442,22 @@ int main(int argc, char * argv[])
//ogles2 test
#ifdef RC_TESTING
rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project");
std::string debug_opt = "a";
std::cin >> debug_opt;
if(debug_opt.compare("a")==0)
{
//rc_intern_dirChange("/home/n00b/projects/bu/rcbasic_v400A6_linux/rcbasic_v400_linux/examples/tile_demo/");
rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project");
rc_filename = "main.cbc";
}
else
{
rc_intern_dirChange("/home/n00b/projects/bu/constraint_demo");
}
#endif
//---------------
if( (!rc_intern_fileExist(rc_filename)) || rc_filename.compare("")==0 )
if( rc_filename.compare("")==0 )
rc_filename = "main.cbc";
if(rcbasic_load(rc_filename))

File diff suppressed because it is too large Load Diff

View File

@@ -4,9 +4,6 @@ case FN_Fprint: //Sub Procedure
case FN_Input$: //String Function
rc_push_str(rc_input( INPUT$_PROMPT$ ));
break;
case FN_tst: //Sub Procedure
rc_tst( );
break;
case FN_ArrayDim: //Number Function
//DUMMY CASE
@@ -1364,8 +1361,8 @@ case FN_ReadInput_Start: //Sub Procedure
case FN_ReadInput_Stop: //Sub Procedure
rc_readInput_Stop( );
break;
case FN_ReadInput_Text$: //String Function
rc_push_str(rc_readInput_Text( ));
case FN_ReadInput_GetText$: //String Function
rc_push_str(rc_readInput_GetText( ));
break;
case FN_ReadInput_SetText: //Sub Procedure
rc_readInput_SetText( READINPUT_SETTEXT_TXT$ );
@@ -2630,6 +2627,12 @@ case FN_GetWorld3DMaxSubSteps: //Number Function
case FN_GetWorld3DTimeStep: //Number Function
rc_push_num(rc_getWorld3DTimeStep( ));
break;
case FN_SetSceneFog: //Sub Procedure
rc_setSceneFog( SETSCENEFOG_COLOR, SETSCENEFOG_FOG_TYPE, SETSCENEFOG_START_VAL, SETSCENEFOG_END_VAL, SETSCENEFOG_DENSITY, SETSCENEFOG_PIXELFOG, SETSCENEFOG_RANGEFOG );
break;
case FN_GetSceneFog: //Sub Procedure
rc_getSceneFog( &GETSCENEFOG_COLOR, &GETSCENEFOG_FOG_TYPE, &GETSCENEFOG_START_VAL, &GETSCENEFOG_END_VAL, &GETSCENEFOG_DENSITY, &GETSCENEFOG_PIXELFOG, &GETSCENEFOG_RANGEFOG );
break;
case FN_startParticleEmitter: //Sub Procedure
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
break;

View File

@@ -134,7 +134,11 @@ int mobile_event_filter(void* userdata, SDL_Event* evt)
bool rc_gfx_init()
{
#ifdef RC_WEB
if(SDL_Init(SDL_INIT_EVENTS | SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_SENSOR | SDL_INIT_NOPARACHUTE) < 0) //Audio causes init to fail on Fedora40 so I am leaving it out for now
#else
if(SDL_Init(SDL_INIT_EVENTS | SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_SENSOR | SDL_INIT_NOPARACHUTE) < 0) //Audio causes init to fail on Fedora40 so I am leaving it out for now
#endif
{
bool rc_init_events = true;
bool rc_init_timer = true;
@@ -325,10 +329,11 @@ bool rc_windowOpenEx(std::string title, int x, int y, int w, int h, uint32_t win
rc_canvas.push_back(back_buffer);
rc_physics3D.world = createIrrBulletWorld(device, true, false);
rc_physics3D.TimeStamp = device->getTimer()->getTime();
rc_physics3D.TimeStamp = SDL_GetTicks(); //device->getTimer()->getTime();
rc_physics3D.maxSubSteps = 1;
rc_physics3D.fixedTimeStep = irr::f32(1.) / irr::f64(60.);
//rc_physics3D.fixedTimeStep = irr::f32(1.) / irr::f64(60.);
rc_physics3D.fixedTimeStep = -1;
rc_physics3D.world->setInternalTickCallback((btInternalTickCallback)myTickCallback2);
@@ -868,6 +873,24 @@ void sortCanvasZ()
//std::cout << std::endl;
}
void rc_setActiveCanvas(int canvas_id)
{
rc_active_canvas = canvas_id;
if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size())
{
if(rc_canvas[rc_active_canvas].texture)
VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
rc_setDriverMaterial();
}
}
int rc_activeCanvas()
{
return rc_active_canvas;
}
int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int canvas_type=RC_CANVAS_TYPE_2D)
{
if(!VideoDriver)
@@ -927,7 +950,8 @@ int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int ca
{
b2Vec2 gravity(0, 0);
canvas.physics2D.world = new b2World(gravity);
canvas.physics2D.timeStep = 1/60.0; //the length of time passed to simulate (seconds)
canvas.physics2D.timeStep = -1; //the length of time passed to simulate (seconds)
canvas.physics2D.time_stamp = SDL_GetTicks();
canvas.physics2D.velocityIterations = 8; //how strongly to correct velocity
canvas.physics2D.positionIterations = 3; //how strongly to correct position
canvas.physics2D.enabled = true;
@@ -962,7 +986,10 @@ int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int ca
}
if(rc_active_canvas < 0)
rc_active_canvas = canvas_id;
{
rc_active_canvas = canvas_id;
rc_setActiveCanvas(rc_active_canvas);
}
for(int i = 0; i < rc_canvas_zOrder.size(); i++)
{
@@ -1052,28 +1079,22 @@ void rc_setCanvasPhysics2D(int canvas_id, bool flag)
rc_canvas[canvas_id].physics2D.enabled = flag;
}
void rc_setActiveCanvas(int canvas_id)
{
rc_active_canvas = canvas_id;
if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size())
{
if(rc_canvas[rc_active_canvas].texture)
VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
}
}
int rc_activeCanvas()
{
return rc_active_canvas;
}
void rc_clearCanvas()
{
if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size())
{
if(rc_canvas[rc_active_canvas].texture)
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
switch(rc_canvas[rc_active_canvas].type)
{
case RC_CANVAS_TYPE_2D:
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
break;
default:
VideoDriver->clearBuffers(true, true, true, rc_clear_color);
break;
}
}
}
@@ -1280,13 +1301,6 @@ int rc_cloneCanvas(int origin_canvas_id, int mode)
canvas.color_mod = irr::video::SColor(255,255,255,255).color;
//2D Physics World
b2Vec2 gravity(0, -9.8);
canvas.physics2D.world = new b2World(gravity);
canvas.physics2D.timeStep = 1/20.0; //the length of time passed to simulate (seconds)
canvas.physics2D.velocityIterations = 8; //how strongly to correct velocity
canvas.physics2D.positionIterations = 3; //how strongly to correct position
switch(mode)
{
@@ -1381,7 +1395,10 @@ void rc_setColor(Uint32 color)
Uint32 rc_getPixel(int x, int y)
{
if(!rc_canvas[0].texture)
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
return 0;
if(!rc_canvas[rc_active_canvas].texture)
{
return 0;
}
@@ -1392,8 +1409,12 @@ Uint32 rc_getPixel(int x, int y)
if(y < 0 || y >= rc_window_size.Height)
y = 0;
#ifdef RC_DRIVER_GLES2
y = rc_canvas[rc_active_canvas].texture->getSize().Height - (y+1);
#endif // RC_DRIVER_GLES2
irr::video::ITexture* texture = rc_canvas[0].texture;
irr::video::ITexture* texture = rc_canvas[rc_active_canvas].texture;
video::ECOLOR_FORMAT format = texture->getColorFormat(); //std::cout << "format = " << (int) format << std::endl;
@@ -1409,10 +1430,12 @@ Uint32 rc_getPixel(int x, int y)
irr::video::SColor * texel = (SColor *)(texels + ((y * pitch) + (x * sizeof(SColor))));
//irr::video::SColor c = texel[0];
irr::video::SColor c = texel[0];
texture->unlock();
color = c.color;
//std::cout << "color(" << x << ", " << y << ") = " << c.getRed() << ", " << c.getGreen() << ", " << c.getBlue() << std::endl;
}
@@ -1422,6 +1445,11 @@ Uint32 rc_getPixel(int x, int y)
void rc_drawRect(int x, int y, int w, int h)
{
// x and y seems to be offset by -1 in the GLES driver for this function. I will remove this once I fix it in the GLES driver but this works for now.
#ifdef RC_DRIVER_GLES2
x++;
y++;
#endif // RC_DRIVER_GLES2
irr::core::vector2d<s32> r_pos(x,y);
irr::core::dimension2d<s32> r_dim(w,h);
irr::core::rect<s32> r(r_pos, r_dim);
@@ -1438,13 +1466,6 @@ void rc_drawRectFill(int x, int y, int w, int h)
VideoDriver->draw2DRectangle(rc_active_color, r);
}
void rc_drawCircle(int x, int y, double r)
{
irr::core::vector2d<s32> r_pos(x,y);
VideoDriver->draw2DPolygon(r_pos, r, rc_active_color, 30);
}
//Filled Circle Code from CuteAlien on Irrlicht forum
@@ -1476,23 +1497,6 @@ void makeCircle(irr::core::array<irr::video::S3DVertex>& vertices, irr::core::ar
}
}
void rc_drawCircleFill(int x, int y, double r)
{
irr::core::vector2d<s32> r_pos(x,y);
// create the circle
irr::core::array<irr::video::S3DVertex> verticesCircle;
irr::core::array<irr::u16> indicesCircle;
CircleSettings circle;
circle.center = r_pos;
circle.radius = r;
circle.color = rc_active_color;
makeCircle(verticesCircle, indicesCircle, circle);
VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(),
indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN,
video::EIT_16BIT);
}
void rc_drawLine(int x1, int y1, int x2, int y2)
{
@@ -1542,8 +1546,8 @@ void makeEllipse(irr::core::array<irr::video::S3DVertex>& vertices, irr::core::a
int ry = settings.radius;
for ( u32 i=1; i < settings.numVertices; i++ )
{
irr::f32 x = rx * std::cos( radians(i*stepSize) ) + centerf.Y ;
irr::f32 y = ry * std::sin( radians(i*stepSize) ) + centerf.X ;
irr::f32 x = rx * std::cos( radians(i*stepSize) ) + centerf.X ;
irr::f32 y = ry * std::sin( radians(i*stepSize) ) + centerf.Y ;
vertices[i] = video::S3DVertex(x, y, 0.f, 0.f, 1.f, 0.f, settings.color, 0.5f, 0.5f);
}
@@ -1566,6 +1570,7 @@ void rc_drawEllipse(int x, int y, int rx, int ry)
for(int i = 2; i < verticesCircle.size(); i++)
{
//std::cout << "V[" << i << "] = (" << verticesCircle[i-1].Pos.X << ", " << verticesCircle[i-1].Pos.Y << ") (" << verticesCircle[i].Pos.X << ", " << verticesCircle[i].Pos.Y << ")" << std::endl;
rc_drawLine(verticesCircle[i-1].Pos.X, verticesCircle[i-1].Pos.Y, verticesCircle[i].Pos.X, verticesCircle[i].Pos.Y);
}
@@ -1573,6 +1578,7 @@ void rc_drawEllipse(int x, int y, int rx, int ry)
rc_drawLine(verticesCircle[n].Pos.X, verticesCircle[n].Pos.Y, verticesCircle[1].Pos.X, verticesCircle[1].Pos.Y);
}
void rc_drawEllipseFill(int x, int y, int rx, int ry)
{
irr::core::vector2d<s32> r_pos(x,y);
@@ -1593,6 +1599,31 @@ void rc_drawEllipseFill(int x, int y, int rx, int ry)
video::EIT_16BIT);
}
void rc_drawCircle(int x, int y, double r)
{
rc_drawEllipse(x, y, r, r);
}
void rc_drawCircleFill(int x, int y, double r)
{
rc_drawEllipseFill(x, y, r, r);
return;
irr::core::vector2d<s32> r_pos(x,y);
// create the circle
irr::core::array<irr::video::S3DVertex> verticesCircle;
irr::core::array<irr::u16> indicesCircle;
CircleSettings circle;
circle.center = r_pos;
circle.radius = r;
circle.color = rc_active_color;
makeCircle(verticesCircle, indicesCircle, circle);
VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(),
indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN,
video::EIT_16BIT);
}
int rc_loadFont(std::string fnt_file, int font_size)
@@ -2167,7 +2198,7 @@ void rc_readInput_Stop()
SDL_StopTextInput();
}
std::string rc_readInput_Text()
std::string rc_readInput_GetText()
{
return rc_textinput_string;
}
@@ -2314,6 +2345,7 @@ void rc_getImageBuffer(int img_id, double * pdata)
void rc_setBilinearFilter(bool flag)
{
rc_bilinear_filter = flag;
rc_setDriverMaterial();
}
bool rc_getBilinearFilter()
@@ -2361,6 +2393,8 @@ void rc_setBlendMode(int blend_mode)
case 8: rc_blend_mode = EBO_MIN_ALPHA; break;
case 9: rc_blend_mode = EBO_MAX_ALPHA; break;
}
rc_setDriverMaterial();
}
int rc_getBlendMode()
@@ -2392,7 +2426,8 @@ void rc_drawImage(int img_id, int x, int y)
//irr::core::rect<irr::s32> dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h));;
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2481,7 +2516,8 @@ void rc_drawImage_Rotate(int img_id, int x, int y, double angle)
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2509,7 +2545,8 @@ void rc_drawImage_Zoom(int img_id, int x, int y, double zx, double zy)
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2537,7 +2574,8 @@ void rc_drawImage_ZoomEx(int img_id, int x, int y, int src_x, int src_y, int src
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2565,7 +2603,8 @@ void rc_drawImage_Rotozoom(int img_id, int x, int y, double angle, double zx, do
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2593,7 +2632,8 @@ void rc_drawImage_RotozoomEx(int img_id, int x, int y, int src_x, int src_y, int
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2623,7 +2663,8 @@ void rc_drawImage_Flip(int img_id, int x, int y, bool h, bool v)
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2652,7 +2693,8 @@ void rc_drawImage_FlipEx(int img_id, int x, int y, int src_x, int src_y, int src
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2683,7 +2725,8 @@ void rc_drawImage_Blit(int img_id, int x, int y, int src_x, int src_y, int src_w
irr::core::rect<irr::s32> dest( irr::core::vector2d<irr::s32>(x, y), irr::core::dimension2d<irr::s32>(src_w, src_h));
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
}
@@ -2712,7 +2755,8 @@ void rc_drawImage_RotateEx(int img_id, int x, int y, int src_x, int src_y, int s
rc_image[img_id].color_mod.getGreen(),
rc_image[img_id].color_mod.getBlue());
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
irr::core::rect<irr::s32> dest( irr::core::vector2d<irr::s32>(x, y), irr::core::dimension2d<irr::s32>(src_w, src_h));
@@ -2744,7 +2788,8 @@ void rc_drawImage_BlitEx(int img_id, int x, int y, int w, int h, int src_x, int
irr::core::rect<irr::s32> dest( irr::core::vector2d<irr::s32>(x, y), irr::core::dimension2d<irr::s32>(w, h));
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
draw2DImage2(VideoDriver, rc_image[img_id].image, sourceRect, dest, rotationPoint, rotation, useAlphaChannel, color, screenSize );
}
@@ -2838,6 +2883,10 @@ void rc_floodFill(int x, int y)
if(y < 0 || y >= rc_canvas[rc_active_canvas].dimension.Height)
return;
#ifdef RC_DRIVER_GLES2
y = rc_canvas[rc_active_canvas].texture->getSize().Height - (y+1);
#endif // RC_DRIVER_GLES2
Uint32* img_pixels = (Uint32*)rc_canvas[rc_active_canvas].texture->lock();
Uint32 flood_size = rc_canvas[rc_active_canvas].texture->getSize().Width*rc_canvas[rc_active_canvas].texture->getSize().Height;
@@ -2876,7 +2925,8 @@ void rc_floodFill(int x, int y)
bool useAlphaChannel = true;
irr::video::SColor color(rc_canvas[rc_active_canvas].color_mod);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
//irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height);
irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].texture->getSize().Width, rc_canvas[rc_active_canvas].texture->getSize().Height);
rc_setActiveCanvas(rc_active_canvas);
draw2DImage(VideoDriver, old_canvas, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize);
@@ -2916,29 +2966,49 @@ int rc_windowClip(int x, int y, int w, int h)
if(w <= 0 || h <=0)
return -1;
if(rc_canvas.size()>0)
{
if(!rc_canvas[0].texture)
return -1;
}
else
return -1;
if(rc_canvas.size() == 0)
return -1;
irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d<irr::u32>((irr::u32)w, (irr::u32)h), "win_clip_image", irr::video::ECF_A8R8G8B8);
if(!rc_canvas[0].texture)
return -1;
#ifdef RC_DRIVER_GLES2
Uint32 size_n = 2;
Uint32 dim_max = (w > h ? w : h);
while(size_n < dim_max) size_n *= 2;
irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d<irr::u32>((irr::u32)size_n, (irr::u32)size_n), "canvas_clip_image", ECF_A8R8G8B8);
#else
irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d<irr::u32>((irr::u32)w, (irr::u32)h), "canvas_clip_image", irr::video::ECF_A8R8G8B8);
#endif // RC_WEB
if(!texture)
return -1;
VideoDriver->setRenderTarget(texture);
drawCanvasImage(rc_canvas[0].texture, 0, 0, x, y, w, h, w, h);
int tgt_w = texture->getSize().Width;
int tgt_h = texture->getSize().Height;
VideoDriver->setRenderTarget(rc_canvas[0].texture);
#ifdef RC_DRIVER_GLES2
int canvas_id = 0;
if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size())
if(rc_canvas[rc_active_canvas].texture)
VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
irr::core::vector2d<irr::f32> screenSize( (irr::f32) tgt_w, (irr::f32) tgt_h );
irr::video::SColor color(rc_canvas[canvas_id].color_mod);
irr::core::dimension2d<irr::u32> cv_dim(tgt_w, tgt_h);
irr::core::position2d<irr::s32> cv_pos(0, 0);
irr::core::vector2d<irr::s32> cv_offset(x, rc_canvas[canvas_id].texture->getSize().Height - y - cv_dim.Height);
irr::core::rect<s32> src( cv_offset, cv_dim );
irr::core::rect<s32> dest( irr::core::vector2d<s32>(cv_pos.X, cv_pos.Y), irr::core::dimension2d<s32>(cv_dim.Width, cv_dim.Height) );
draw2DImage2(VideoDriver, rc_canvas[canvas_id].texture, src, dest, irr::core::position2d<irr::s32>(0, 0), 0, true, color, screenSize);
//rc_setDriverMaterial();
//VideoDriver->draw2DImage(rc_canvas[rc_active_canvas].texture, dest, src, 0, 0, false);
#else
drawCanvasImage(rc_canvas[0].texture, 0, 0, x, y, w, h, tgt_w, tgt_h);
#endif // RC_DRIVER_GLES2
rc_setActiveCanvas(rc_active_canvas);
//VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
int img_id = -1;
rc_image_obj img;
@@ -2981,16 +3051,43 @@ int rc_canvasClip(int x, int y, int w, int h)
else
return -1;
#ifdef RC_DRIVER_GLES2
Uint32 size_n = 2;
Uint32 dim_max = (w > h ? w : h);
while(size_n < dim_max) size_n *= 2;
irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d<irr::u32>((irr::u32)size_n, (irr::u32)size_n), "canvas_clip_image", ECF_A8R8G8B8);
#else
irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d<irr::u32>((irr::u32)w, (irr::u32)h), "canvas_clip_image", irr::video::ECF_A8R8G8B8);
#endif // RC_WEB
if(!texture)
return -1;
VideoDriver->setRenderTarget(texture);
drawCanvasImage(rc_canvas[rc_active_canvas].texture, 0, 0, x, y, w, h, w, h);
int tgt_w = texture->getSize().Width;
int tgt_h = texture->getSize().Height;
VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
#ifdef RC_DRIVER_GLES2
int canvas_id = rc_active_canvas;
irr::core::vector2d<irr::f32> screenSize( (irr::f32) tgt_w, (irr::f32) tgt_h );
irr::video::SColor color(rc_canvas[canvas_id].color_mod);
irr::core::dimension2d<irr::u32> cv_dim(tgt_w, tgt_h);
irr::core::position2d<irr::s32> cv_pos(0, 0);
irr::core::vector2d<irr::s32> cv_offset(x, rc_canvas[canvas_id].texture->getSize().Height - y - cv_dim.Height);
irr::core::rect<s32> src( cv_offset, cv_dim );
irr::core::rect<s32> dest( irr::core::vector2d<s32>(cv_pos.X, cv_pos.Y), irr::core::dimension2d<s32>(cv_dim.Width, cv_dim.Height) );
draw2DImage2(VideoDriver, rc_canvas[canvas_id].texture, src, dest, irr::core::position2d<irr::s32>(0, 0), 0, true, color, screenSize);
//rc_setDriverMaterial();
//VideoDriver->draw2DImage(rc_canvas[rc_active_canvas].texture, dest, src, 0, 0, false);
#else
drawCanvasImage(rc_canvas[rc_active_canvas].texture, 0, 0, x, y, w, h, tgt_w, tgt_h);
#endif // RC_DRIVER_GLES2
rc_setActiveCanvas(rc_active_canvas);
//VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false);
int img_id = -1;
rc_image_obj img;
@@ -3024,16 +3121,21 @@ int rc_canvasClip(int x, int y, int w, int h)
void rc_preUpdate()
{
//3D World Update
rc_physics3D.DeltaTime = device->getTimer()->getTime() - rc_physics3D.TimeStamp;
rc_physics3D.TimeStamp = device->getTimer()->getTime();
rc_physics3D.world->stepSimulation(rc_physics3D.DeltaTime*0.001f, rc_physics3D.maxSubSteps, rc_physics3D.fixedTimeStep);
//rc_physics3D.DeltaTime = device->getTimer()->getTime() - rc_physics3D.TimeStamp;
//rc_physics3D.TimeStamp = device->getTimer()->getTime();
rc_physics3D.DeltaTime = SDL_GetTicks() - rc_physics3D.TimeStamp;
rc_physics3D.TimeStamp = SDL_GetTicks();
float fixed_timestep = rc_physics3D.fixedTimeStep < 0 ? rc_physics3D.DeltaTime*0.001f : rc_physics3D.fixedTimeStep;
rc_physics3D.world->stepSimulation(rc_physics3D.DeltaTime*0.001f, rc_physics3D.maxSubSteps, fixed_timestep);
for(int i = 0; i < rc_canvas.size(); i++)
{
if(rc_canvas[i].type != RC_CANVAS_TYPE_SPRITE)
continue;
float step = rc_canvas[i].physics2D.timeStep;
Uint32 delta_time = SDL_GetTicks() - rc_canvas[i].physics2D.time_stamp;
rc_canvas[i].physics2D.time_stamp = SDL_GetTicks();
float step = rc_canvas[i].physics2D.timeStep < 0 ? (delta_time*0.001f) : rc_canvas[i].physics2D.timeStep;
int32 velocityIterations = rc_canvas[i].physics2D.velocityIterations;
int32 positionIterations = rc_canvas[i].physics2D.positionIterations;
@@ -3434,9 +3536,12 @@ bool rc_update()
if(!hasPreUpdated)
{
rc_physics3D.DeltaTime = device->getTimer()->getTime() - rc_physics3D.TimeStamp;
rc_physics3D.TimeStamp = device->getTimer()->getTime();
rc_physics3D.world->stepSimulation(rc_physics3D.DeltaTime*0.001f, rc_physics3D.maxSubSteps, rc_physics3D.fixedTimeStep);
//rc_physics3D.DeltaTime = device->getTimer()->getTime() - rc_physics3D.TimeStamp;
//rc_physics3D.TimeStamp = device->getTimer()->getTime();
rc_physics3D.DeltaTime = SDL_GetTicks() - rc_physics3D.TimeStamp;
rc_physics3D.TimeStamp = SDL_GetTicks();
float fixed_timestep = rc_physics3D.fixedTimeStep < 0 ? rc_physics3D.DeltaTime*0.001f : rc_physics3D.fixedTimeStep;
rc_physics3D.world->stepSimulation(rc_physics3D.DeltaTime*0.001f, rc_physics3D.maxSubSteps, fixed_timestep);
}
for(int i = 0; i < rc_canvas.size(); i++)

View File

@@ -307,6 +307,7 @@ struct rc_physicsWorld2D_obj
b2World* world;
rc_contactListener_obj* contact_listener;
Uint32 time_stamp;
float timeStep = 1/60.0; //the length of time passed to simulate (seconds)
int velocityIterations = 8; //how strongly to correct velocity
int positionIterations = 3; //how strongly to correct position
@@ -738,6 +739,28 @@ irr::video::E_BLEND_OPERATION rc_blend_mode = irr::video::EBO_ADD;
bool rc_bilinear_filter = false;
void rc_setDriverMaterial()
{
if(!VideoDriver)
return;
irr::video::SMaterial material;
material.Lighting = false;
material.ZWriteEnable = irr::video::EZW_OFF;
material.ZBuffer = false;
material.BackfaceCulling = false;
material.TextureLayer[0].Texture = 0;
material.TextureLayer[0].BilinearFilter = rc_bilinear_filter;
material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR);
material.BlendOperation = rc_blend_mode;
material.BlendOperation = irr::video::EBO_ADD;
material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND;
VideoDriver->setMaterial(material);
}
void draw2DImage(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect<irr::s32> sourceRect, irr::core::position2d<irr::s32> position, irr::core::position2d<irr::s32> rotationPoint, irr::f32 rotation, irr::core::vector2df scale, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d<irr::f32> screenSize)
{
if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size())
@@ -826,6 +849,8 @@ void draw2DImage(irr::video::IVideoDriver *driver, irr::video::ITexture* texture
driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat);
driver->setTransform(irr::video::ETS_VIEW,oldViewMat);
driver->setTransform(irr::video::ETS_WORLD,oldWorldMat);
rc_setDriverMaterial();
}
void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect<irr::s32> sourceRect, irr::core::rect<irr::s32> destRect, irr::core::position2d<irr::s32> rotationPoint, irr::f32 rotation, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d<irr::f32> screenSize )
@@ -916,6 +941,8 @@ void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* textur
driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat);
driver->setTransform(irr::video::ETS_VIEW,oldViewMat);
driver->setTransform(irr::video::ETS_WORLD,oldWorldMat);
rc_setDriverMaterial();
}

View File

@@ -2,7 +2,7 @@
#define RC_OS_DEFINES_H_INCLUDED
//USED FOR TESTING ONLY
#define RC_TESTING
//#define RC_TESTING
//I am checking Android first since I think it also defines __linux__
@@ -10,7 +10,7 @@
#define RC_ANDROID
#elif defined(__linux__)
#define RC_LINUX
#elif __EMSCRIPTEN__
#elif defined(__EMSCRIPTEN__)
#define RC_WEB
#elif defined(_WIN32) || defined(_WIN64)
#define RC_WINDOWS
@@ -40,7 +40,7 @@
//FOR TESTING PURPOSES
#ifdef RC_TESTING
//#define RC_DRIVER_GLES2
#define RC_DRIVER_GLES2
#endif // RC_TESTING
#define RC_PI 3.14159265359

View File

@@ -42,4 +42,30 @@ double rc_getWorld3DTimeStep()
return rc_physics3D.fixedTimeStep;
}
void rc_setSceneFog (Uint32 color, int fog_type, double start_val, double end_val, double density, bool pixelFog, bool rangeFog)
{
if(VideoDriver)
VideoDriver->setFog(irr::video::SColor(color), (irr::video::E_FOG_TYPE)fog_type, start_val, end_val, density, pixelFog, rangeFog);
}
void rc_getSceneFog (double* color, double* fog_type, double* start_val, double* end_val, double* density, double* pixelFog, double* rangeFog)
{
irr::video::SColor col;
irr::video::E_FOG_TYPE ftype;
irr::f32 sv, ev, den;
bool pf, rf;
if(VideoDriver)
{
VideoDriver->getFog(col, ftype, sv, ev, den, pf, rf);
*color = (double)col.color;
*fog_type = (double)( (irr::video::E_FOG_TYPE) ftype);
*start_val = (double)sv;
*end_val = (double)ev;
*density = (double)den;
*pixelFog = (double)( pf ? 1.0 : 0.0 );
*rangeFog = (double)( rf ? 1.0 : 0.0 );
}
}
#endif // RC_PHYSICS3D_BASE_H_INCLUDED

View File

@@ -804,7 +804,9 @@ bool rc_spriteIsVisible(int spr_id)
//This function is called on each canvas on update
void drawSprites(int canvas_id)
{
float step = rc_canvas[canvas_id].physics2D.timeStep;
Uint32 delta_time = SDL_GetTicks() - rc_canvas[canvas_id].physics2D.time_stamp;
rc_canvas[canvas_id].physics2D.time_stamp = SDL_GetTicks();
float step = rc_canvas[canvas_id].physics2D.timeStep < 0 ? (delta_time*0.001f) : rc_canvas[canvas_id].physics2D.timeStep;
int32 velocityIterations = rc_canvas[canvas_id].physics2D.velocityIterations;
int32 positionIterations = rc_canvas[canvas_id].physics2D.positionIterations;

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1731732087 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
1733272320 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
"rc_os_defines.h"
<emscripten.h>
<sys/param.h>
@@ -32,10 +32,10 @@
<irrtheora.h>
"rc_func130_cases.h"
1731732087 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
1733454924 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
<TargetConditionals.h>
1731903073 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1733270962 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h
"rc_os_defines.h"
@@ -1247,7 +1247,7 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h
<irrlicht.h>
1731729981 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
1733454956 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h
"SDL.h"
<SDL2/SDL.h>
<irrlicht.h>
@@ -1271,7 +1271,7 @@
"rc_joints.h"
<irrtheora.h>
1731727404 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
1733272044 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h
"SDL.h"
"btBulletDynamicsCommon.h"
"BulletSoftBody/btSoftRigidDynamicsWorld.h"
@@ -2272,7 +2272,7 @@
"rc_gfx_core.h"
<irrtheora.h>
1731903073 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1733270962 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h
1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp
"irrBullet.h"
@@ -2487,7 +2487,7 @@
<irrlicht.h>
<cmath>
1731722537 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
1733028518 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h
"SDL.h"
<SDL2/SDL.h>
"rc_sprite2D.h"
@@ -2514,7 +2514,7 @@
"rc_sprite2D.h"
"rc_gfx_core.h"
1731722537 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
1732560585 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
"rc_gfx_core.h"
1731727404 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Release" />
<File name="rc_net.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<ActiveTarget name="Debug" />
<File name="rc_actor_animation.h" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1339" topLine="12" />
<Cursor1 position="3250" topLine="93" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletWorld.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_actor_material.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2750" topLine="75" />
<Cursor1 position="14332" topLine="540" />
</Cursor>
</File>
<File name="rc_gfx3D.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="RealisticWater.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="583" topLine="21" />
<Cursor1 position="7671" topLine="204" />
</Cursor>
</File>
<File name="rc_spritelib.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_sprite_physics.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="8770" topLine="54" />
<Cursor1 position="10319" topLine="472" />
</Cursor>
</File>
<File name="rc_media.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -27,24 +27,9 @@
<Cursor1 position="17752" topLine="630" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletcommon.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_actor_physics.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="924" topLine="6" />
</Cursor>
</File>
<File name="rc_gfx_core.h" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="22725" topLine="825" />
</Cursor>
</File>
<File name="rc_defines.h" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="113947" topLine="2998" />
</Cursor>
</File>
<File name="rc_test.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="115" topLine="0" />
<Cursor1 position="0" topLine="668" />
</Cursor>
</File>
<File name="rc_audio.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -52,19 +37,29 @@
<Cursor1 position="6531" topLine="311" />
</Cursor>
</File>
<File name="rc_matrix.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_os_defines.h" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="116" topLine="3" />
<Cursor1 position="914" topLine="31" />
</Cursor>
</File>
<File name="rc_stdlib.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_physics3D_base.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="24553" topLine="1081" />
<Cursor1 position="565" topLine="19" />
</Cursor>
</File>
<File name="gui_freetype_font.h" open="0" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="rc_gfx_core.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="183" topLine="0" />
<Cursor1 position="26959" topLine="736" />
</Cursor>
</File>
<File name="rc_net.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1339" topLine="12" />
</Cursor>
</File>
<File name="rc_constraint.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="303" topLine="258" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBullet.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -72,24 +67,9 @@
<Cursor1 position="0" topLine="7" />
</Cursor>
</File>
<File name="rc_gfx.h" open="1" top="1" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="../../irrBullet/src/irrBulletWorld.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="99487" topLine="3515" />
</Cursor>
</File>
<File name="rc_func130_cases.h" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="12494" topLine="362" />
</Cursor>
</File>
<File name="rc_actor_animation.h" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3353" topLine="183" />
</Cursor>
</File>
<File name="rc_os_defines.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="107" topLine="0" />
<Cursor1 position="2750" topLine="75" />
</Cursor>
</File>
<File name="rc_geometry.h" open="0" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -97,34 +77,89 @@
<Cursor1 position="20919" topLine="652" />
</Cursor>
</File>
<File name="gui_freetype_font.cpp" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4946" topLine="0" />
</Cursor>
</File>
<File name="main.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="74" topLine="3" />
</Cursor>
</File>
<File name="camera.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="261" topLine="0" />
</Cursor>
</File>
<File name="rc_sprite2D.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1444" topLine="0" />
</Cursor>
</File>
<File name="rc_base_actor.h" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13697" topLine="505" />
</Cursor>
</File>
<File name="rc_test.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="115" topLine="0" />
</Cursor>
</File>
<File name="rc_video.h" open="0" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="rc_matrix.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="116" topLine="3" />
</Cursor>
</File>
<File name="../../irrBullet/src/irrBulletcommon.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="924" topLine="6" />
</Cursor>
</File>
<File name="rc_tilemap.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="243" topLine="0" />
</Cursor>
</File>
<File name="rc_gfx3D.h" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="583" topLine="11" />
</Cursor>
</File>
<File name="rc_func130_cases.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="116893" topLine="2608" />
</Cursor>
</File>
<File name="gui_freetype_font.cpp" open="0" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="792" topLine="0" />
</Cursor>
</File>
<File name="rc_stdlib.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="24553" topLine="1081" />
</Cursor>
</File>
<File name="rc_gfx.h" open="1" top="1" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="21506" topLine="932" />
</Cursor>
</File>
<File name="rc_defines.h" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="190390" topLine="2843" />
</Cursor>
</File>
<File name="camera.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="261" topLine="0" />
</Cursor>
</File>
<File name="rc_spritelib.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="20025" topLine="806" />
</Cursor>
</File>
<File name="gui_freetype_font.h" open="0" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="183" topLine="0" />
</Cursor>
</File>
<File name="main.cpp" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="133333" topLine="4437" />
</Cursor>
</File>
</CodeBlocks_layout_file>