Fixed bug that prevents compiler from finding user types in scope

This commit is contained in:
n00b
2024-12-13 20:22:10 -05:00
parent d0dc046c6b
commit 447bc241d7
13 changed files with 98 additions and 2183 deletions

View File

@@ -8,8 +8,8 @@ Returns -1 if it does not have a type (ie. its not a light)
Possible Light Types
#list ul
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_DIRECTIONAL
#li LIGHT_TYPE_SPOT
#/light
#ref SetLightType

View File

@@ -6,8 +6,8 @@ Sets the type of light
Possible Light Types
#list ul
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_POINT
#li LIGHT_TYPE_DIRECTIONAL
#li LIGHT_TYPE_SPOT
#/light
#ref SetLightType

View File

@@ -302,16 +302,17 @@ void output_vars()
int getUType(string utype_name)
{
string param = utype_name;
utype_name = StringToLower(utype_name);
for(int i = 0; i < utype.size(); i++)
{
//cout << "TYPE[" << i << "] = " << utype[i].name << endl;
if(utype_name.compare(utype[i].name)==0)
if(utype_name.compare(StringToLower(utype[i].name))==0)
{
return i;
}
}
rc_setError(utype_name + " does not name a type");
rc_setError(param + " does not name a type");
return -1;
}
@@ -339,9 +340,10 @@ bool create_type(string utype_name)
bool memberExists(string member_name)
{
member_name = StringToLower(member_name);
for(int i = 0; i < utype[current_type_index].num_members; i++)
{
if(utype[current_type_index].member_name[i].compare(member_name)==0)
if(StringToLower(utype[current_type_index].member_name[i]).compare(member_name)==0)
return true;
}
return false;
@@ -531,7 +533,8 @@ int getIDInScope_ByIndex_TypeMatch(string id_name, string check_scope="")
for(int i = 0; i < id.size(); i++)
{
if(id[i].scope.compare(check_scope)==0)
string id_cmp_scope = StringToLower(id[i].scope);
if(id_cmp_scope.compare(check_scope)==0)
{
if(id[i].name.substr(id[i].name.length()-1,1).compare("$")==0) //id in type is string
{
@@ -541,7 +544,7 @@ int getIDInScope_ByIndex_TypeMatch(string id_name, string check_scope="")
}
else
{
//cout << id_name << " ~ " << id[i].name << endl;
//cout << id_name << " ~ " << id[i].name << " scope: " << check_scope << endl;
if(id_name.compare(StringToLower(id[i].name))==0)
return i;
}

View File

@@ -920,7 +920,7 @@ int main(int argc, char * argv[])
//DEBUG START
//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/Music/Simple 3D Platformer/main.bas";
//rc_filename = "/home/n00b/projects/rcbasic_alpha3/test_project/main.bas";
//DEBUG END

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/Music/Simple 3D Platformer/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
1733777264 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
1734137418 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
<iostream>
<stack>
<vector>
@@ -37,14 +37,14 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h
<vector>
1733776972 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h
1733777902 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h
"tokenizer.h"
"identifier.h"
"rc_global.h"
"constants.h"
<inttypes.h>
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
1734138795 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
<inttypes.h>
<stack>
"rc_global.h"
@@ -54,7 +54,7 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.h>
1733771900 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
1733959765 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
"identifier.h"
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h

View File

@@ -4448,7 +4448,7 @@ int main(int argc, char * argv[])
if(debug_opt.compare("a")==0)
{
//rc_intern_dirChange("/home/n00b/Music/rcbasic_v400_linux64/examples/tile_demo");
rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project");
rc_intern_dirChange("/home/n00b/Music/Simple 3D Platformer/");
rc_filename = "main.cbc";
}
else

View File

@@ -135,7 +135,7 @@ void rc_setActorMD2AnimationByName(int actor, std::string animation_name, int nu
rc_actor[actor].isPlaying = true;
//node->setCurrentFrame(start_frame);
//node->setFrameLoop((irr::s32)start_frame, (irr::s32)end_frame ); //setMD2Animation() does this for me
node->setAnimationSpeed(node->getMesh()->getAnimationSpeed());
//node->setAnimationSpeed(node->getMesh()->getAnimationSpeed());
break;
}
}

View File

@@ -766,16 +766,17 @@ void rc_setActorPosition(int actor, double x, double y, double z)
{
//std::cout << "Set POS" << std::endl;
irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform();
rc_physics3D.world->removeCollisionObject(rc_actor[actor].physics.rigid_body, false);
//rc_physics3D.world->removeCollisionObject(rc_actor[actor].physics.rigid_body, false);
actor_transform.setTranslation( irr::core::vector3df(x, y, z) );
rc_actor[actor].physics.rigid_body->clearForces();
//rc_actor[actor].physics.rigid_body->
rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform);
rc_actor[actor].physics.rigid_body->setMassProps(rc_actor[actor].physics.mass, irr::core::vector3df(0,0,0));
rc_physics3D.world->addRigidBody(rc_actor[actor].physics.rigid_body);
//rc_actor[actor].physics.rigid_body->setMassProps(rc_actor[actor].physics.mass, irr::core::vector3df(0,0,0));
//rc_physics3D.world->addRigidBody(rc_actor[actor].physics.rigid_body);
rc_actor[actor].mesh_node->setPosition(actor_transform.getTranslation());
rc_actor[actor].mesh_node->updateAbsolutePosition();
}
}

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__

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1733959687 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
1734119283 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp
"rc_os_defines.h"
<emscripten.h>
<sys/param.h>
@@ -33,7 +33,7 @@
<irrtheora.h>
"rc_func130_cases.h"
1733960003 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
1734119283 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h
<TargetConditionals.h>
1733959765 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h
@@ -2518,11 +2518,11 @@
1733590876 /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
1734125778 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h
1731710840 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h
1731727068 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h
1734119354 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h
1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_physics.h