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 Possible Light Types
#list ul #list ul
#li LIGHT_TYPE_POINT #li LIGHT_TYPE_POINT
#li LIGHT_TYPE_POINT #li LIGHT_TYPE_DIRECTIONAL
#li LIGHT_TYPE_POINT #li LIGHT_TYPE_SPOT
#/light #/light
#ref SetLightType #ref SetLightType

View File

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

View File

@@ -302,16 +302,17 @@ void output_vars()
int getUType(string utype_name) int getUType(string utype_name)
{ {
string param = utype_name;
utype_name = StringToLower(utype_name); utype_name = StringToLower(utype_name);
for(int i = 0; i < utype.size(); i++) for(int i = 0; i < utype.size(); i++)
{ {
//cout << "TYPE[" << i << "] = " << utype[i].name << endl; //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; return i;
} }
} }
rc_setError(utype_name + " does not name a type"); rc_setError(param + " does not name a type");
return -1; return -1;
} }
@@ -339,9 +340,10 @@ bool create_type(string utype_name)
bool memberExists(string member_name) bool memberExists(string member_name)
{ {
member_name = StringToLower(member_name);
for(int i = 0; i < utype[current_type_index].num_members; i++) 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 true;
} }
return false; return false;
@@ -531,7 +533,8 @@ int getIDInScope_ByIndex_TypeMatch(string id_name, string check_scope="")
for(int i = 0; i < id.size(); i++) 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 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 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) if(id_name.compare(StringToLower(id[i].name))==0)
return i; return i;
} }

View File

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

View File

@@ -1,43 +1 @@
embedded_functions.bas /home/n00b/Music/Simple 3D Platformer/main.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

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 # 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> <iostream>
<stack> <stack>
<vector> <vector>
@@ -37,14 +37,14 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h 1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h
<vector> <vector>
1733776972 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h 1733777902 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h
"tokenizer.h" "tokenizer.h"
"identifier.h" "identifier.h"
"rc_global.h" "rc_global.h"
"constants.h" "constants.h"
<inttypes.h> <inttypes.h>
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h 1734138795 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
<inttypes.h> <inttypes.h>
<stack> <stack>
"rc_global.h" "rc_global.h"
@@ -54,7 +54,7 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h 1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.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" "identifier.h"
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.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) if(debug_opt.compare("a")==0)
{ {
//rc_intern_dirChange("/home/n00b/Music/rcbasic_v400_linux64/examples/tile_demo"); //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"; rc_filename = "main.cbc";
} }
else else

View File

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

View File

@@ -766,16 +766,17 @@ void rc_setActorPosition(int actor, double x, double y, double z)
{ {
//std::cout << "Set POS" << std::endl; //std::cout << "Set POS" << std::endl;
irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); 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) ); actor_transform.setTranslation( irr::core::vector3df(x, y, z) );
rc_actor[actor].physics.rigid_body->clearForces(); rc_actor[actor].physics.rigid_body->clearForces();
//rc_actor[actor].physics.rigid_body-> //rc_actor[actor].physics.rigid_body->
rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); 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_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_physics3D.world->addRigidBody(rc_actor[actor].physics.rigid_body);
rc_actor[actor].mesh_node->setPosition(actor_transform.getTranslation()); 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 #define RC_OS_DEFINES_H_INCLUDED
//USED FOR TESTING ONLY //USED FOR TESTING ONLY
//#define RC_TESTING #define RC_TESTING
//I am checking Android first since I think it also defines __linux__ //I am checking Android first since I think it also defines __linux__

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0 # 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" "rc_os_defines.h"
<emscripten.h> <emscripten.h>
<sys/param.h> <sys/param.h>
@@ -33,7 +33,7 @@
<irrtheora.h> <irrtheora.h>
"rc_func130_cases.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> <TargetConditionals.h>
1733959765 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.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 1733590876 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h
"rc_gfx_core.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 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 1730291453 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_physics.h