USING "rage_builtins.sch" USING "globals.sch" USING "commands_script.sch" USING "commands_streaming.sch" USING "commands_hud.sch" ENUM SCRIPT_STAGE_ENUM STAGE_SETUP = 0, STAGE_PROCESS, STAGE_CLEANUP ENDENUM SCRIPT_STAGE_ENUM eStage = STAGE_SETUP STRUCT RENDERTARGETDATA STRING name float X float Y float deltaX float deltaY int RED int GREEN int BLUE int targetId ENDSTRUCT RENDERTARGETDATA RTs[8] PROC INITRT(INT id, STRING rtname, STRING name, int red, int green, int blue) RTs[id].name = name RTs[id].X = GET_RANDOM_FLOAT_IN_RANGE(0.0,1.0) RTs[id].Y = GET_RANDOM_FLOAT_IN_RANGE(0.0,1.0) RTs[id].deltaX = GET_RANDOM_FLOAT_IN_RANGE(0.0,0.25) RTs[id].deltaY = GET_RANDOM_FLOAT_IN_RANGE(0.0,0.25) RTs[id].RED = red RTs[id].GREEN = green RTs[id].BLUE = blue REGISTER_NAMED_RENDERTARGET(rtname) RTs[id].targetId = GET_NAMED_RENDERTARGET_RENDER_ID(rtname) ENDPROC PROC RENDERRT(INT id) SET_TEXT_RENDER_ID((RTs[id].targetId)) DRAW_RECT(0.0,0.0,2.0,2.0,0,0,0,255) SET_TEXT_FONT(FONT_STANDARD) SET_TEXT_SCALE(1.0, 1.0) SET_TEXT_WRAP(1.0, 1.0) SET_TEXT_COLOUR(RTs[id].RED, RTs[id].GREEN, RTs[id].BLUE, 128) SET_TEXT_USE_UNDERSCORE(TRUE) DISPLAY_TEXT_WITH_LITERAL_STRING(0.0, 0.0, "STRING", RTs[id].name ) SET_TEXT_USE_UNDERSCORE(FALSE) DRAW_RECT(RTs[id].x, RTs[id].y, 0.1, 0.1, RTs[id].RED, RTs[id].GREEN, RTs[id].BLUE, 128) RTs[id].x += RTs[id].deltaX RTs[id].y += RTs[id].deltaY IF RTs[id].x > 1.0 OR RTs[id].x < 0.0 RTs[id].deltaX = -RTs[id].deltaX ENDIF IF RTs[id].y > 1.0 OR RTs[id].y < 0.0 RTs[id].deltaY = -RTs[id].deltaY ENDIF ENDPROC PROC LINK_RENDERTARGET(STRING ModelNameString) INT ModelHash = GET_HASH_KEY(ModelNameString) MODEL_NAMES ModelName = INT_TO_ENUM(MODEL_NAMES, ModelHash) IF IS_MODEL_IN_CDIMAGE(ModelName) LINK_NAMED_RENDERTARGET(ModelName) ELSE PRINTSTRING("LINK_RENDERTARGET - Couldn't find a model with the name ") PRINTSTRING(ModelNameString) PRINTNL() SCRIPT_ASSERT("LINK_RENDERTARGET - Couldn't find a model with the name listed in the TTY") ENDIF ENDPROC PROC DO_SETUP() INITRT(0,"4","Yellow",255,255,0) INITRT(1,"5","Magenta",255,0,255) INITRT(2,"6_1555mips","Cyan",0,255,255) INITRT(3,"6_1555nomips","Yellow",255,255,0) INITRT(4,"7_8888mips","Yellow",255,255,0) INITRT(5,"7_8888nomips","Magenta",255,0,255) INITRT(6,"8_565mips","Magenta",255,0,255) INITRT(7,"8_565nomips","Cyan",0,255,255) // Use the names of the models so that we don't need to list cptestbed.xml in enum_maker.txt LINK_RENDERTARGET("SCRIPT_RT_TESTCUBE_1") LINK_RENDERTARGET("SCRIPT_RT_TESTCUBE_2") LINK_RENDERTARGET("SCRIPT_RT_TESTCUBE_003") LINK_RENDERTARGET("SCRIPT_RT_TESTCUBE_004") LINK_RENDERTARGET("SCRIPT_RT_TESTCUBE_005") eStage = STAGE_PROCESS ENDPROC PROC DO_PROCESS() RENDERRT(0) RENDERRT(1) RENDERRT(2) RENDERRT(3) RENDERRT(4) RENDERRT(5) RENDERRT(6) RENDERRT(7) ENDPROC PROC DO_CLEANUP() PRINTSTRING("\nTEST SCRIPT TERMINATING")PRINTNL() RELEASE_NAMED_RENDERTARGET("4") RELEASE_NAMED_RENDERTARGET("5") RELEASE_NAMED_RENDERTARGET("6_1555mips") RELEASE_NAMED_RENDERTARGET("6_1555nomips") RELEASE_NAMED_RENDERTARGET("7_8888mips") RELEASE_NAMED_RENDERTARGET("7_8888nomips") RELEASE_NAMED_RENDERTARGET("8_565mips") RELEASE_NAMED_RENDERTARGET("8_565nomips") TERMINATE_THIS_THREAD() ENDPROC SCRIPT PRINTSTRING("\nRT TEST SCRIPT STARTING")PRINTNL() IF HAS_FORCE_CLEANUP_OCCURRED() DO_CLEANUP() ENDIF // Main loop WHILE TRUE WAIT(0) SWITCH eStage CASE STAGE_SETUP DO_SETUP() BREAK CASE STAGE_PROCESS DO_PROCESS() BREAK CASE STAGE_CLEANUP DO_CLEANUP() BREAK ENDSWITCH ENDWHILE ENDSCRIPT