diff --git a/AM2R.project.gmx b/AM2R.project.gmx
index 7c2ff63..a93591a 100644
--- a/AM2R.project.gmx
+++ b/AM2R.project.gmx
@@ -1287,6 +1287,7 @@
sound\musGenesis
sound\musTrialsMenu
sound\musTrialsWin
+ sound\musTrialsPlay
sound\sndA4AlarmLoop
@@ -3396,6 +3397,9 @@
sprites\sTTButton43
sprites\sTTButton169
+ sprites\sEditorCursor
+ sprites\sEditorTab
+ sprites\sEditorStart
@@ -4340,10 +4344,16 @@
+
+
+
+
+
+
@@ -5403,6 +5413,10 @@
+
+
+
+
@@ -5830,9 +5844,12 @@
rooms\trialselectroom
rooms\trialclearroom
+ rooms\trialeditor
+ rooms\empty_room
rooms\map0
rooms\map1
+ rooms\the_tower
diff --git a/objects/oEditorCamera.object.gmx b/objects/oEditorCamera.object.gmx
new file mode 100644
index 0000000..dbfe799
--- /dev/null
+++ b/objects/oEditorCamera.object.gmx
@@ -0,0 +1,121 @@
+
+
diff --git a/objects/oEditorSolid.object.gmx b/objects/oEditorSolid.object.gmx
new file mode 100644
index 0000000..229cafd
--- /dev/null
+++ b/objects/oEditorSolid.object.gmx
@@ -0,0 +1,23 @@
+
+
diff --git a/objects/oEditorTab.object.gmx b/objects/oEditorTab.object.gmx
new file mode 100644
index 0000000..15de341
--- /dev/null
+++ b/objects/oEditorTab.object.gmx
@@ -0,0 +1,111 @@
+
+
diff --git a/objects/oSkipMain.object.gmx b/objects/oSkipMain.object.gmx
index c4e8bc5..12f83cc 100644
--- a/objects/oSkipMain.object.gmx
+++ b/objects/oSkipMain.object.gmx
@@ -26,12 +26,9 @@
1
if (global.skip_mMenu == 1){
-audio_stop_all();
-if (global.results == 1){
-room_change(trialclearroom,0);
+ room_change(trialselectroom,0);
}else{
-room_change(trialselectroom,0);
-}
+ trials_check_save();
}
diff --git a/objects/oTrialClear.object.gmx b/objects/oTrialClear.object.gmx
index 103c8f7..24f65b6 100644
--- a/objects/oTrialClear.object.gmx
+++ b/objects/oTrialClear.object.gmx
@@ -26,6 +26,7 @@
1
oControl.ingame = 0;
+sfx_stop_all();
mus_change(musTrialsWin);
diff --git a/objects/oTrialEditor.object.gmx b/objects/oTrialEditor.object.gmx
new file mode 100644
index 0000000..b876fc0
--- /dev/null
+++ b/objects/oTrialEditor.object.gmx
@@ -0,0 +1,184 @@
+
+
diff --git a/objects/oTrialGoal.object.gmx b/objects/oTrialGoal.object.gmx
index 2eb077d..977fe41 100644
--- a/objects/oTrialGoal.object.gmx
+++ b/objects/oTrialGoal.object.gmx
@@ -52,7 +52,6 @@
mus_stop(oMusicV2.currentbgm);
oTrialLogic.timer_started = -1;
global.end_time = oTrialLogic.timer;
-oTrialLogic.alarm[1] = 90;
instance_destroy(); // done with this object so make it not exist
diff --git a/objects/oTrialLogic.object.gmx b/objects/oTrialLogic.object.gmx
index 83b5efc..ce6451e 100644
--- a/objects/oTrialLogic.object.gmx
+++ b/objects/oTrialLogic.object.gmx
@@ -25,7 +25,7 @@
1
- global.clear = 0;
+ //global.clear = 0; ??????
visible = 0; // hide me!
// initially triallogic will merely act as a spawn point but does more than that
alarm[0] = 1; // alarm for spawning samus
@@ -106,15 +106,27 @@ oCharacter.y = y;
}
if (timer_started == 0) && !(oCharacter.state == 33){
- mus_change(musEris);
+ mus_stop_all();
+ mus_loop(musTrialsPlay);
timer_started = 1;
}
+/* this was debug code for screenshots
if (keyboard_check(vk_alt)){
room_speed = 6;
}else{
room_speed = 60;
}
+*/
+
+// slow down time before transitioning to the next screen once the course is complete
+if (timer_started == -1){
+ room_speed -= 1;
+ if (room_speed < 15){
+ room_speed = 60;
+ goal_trial();
+ }
+}
diff --git a/objects/oTrialSelect.object.gmx b/objects/oTrialSelect.object.gmx
index 2950922..aa56cdf 100644
--- a/objects/oTrialSelect.object.gmx
+++ b/objects/oTrialSelect.object.gmx
@@ -50,7 +50,8 @@ real_scroll = 0; // the "real" scroll variable
// this is going to be a bit of a nightmare but be ready
available_maps = 0; // this variable will be important (trust me)
-for (var r1 = 0; r1 < 2; ++r1;){ // start a for loop
+/*
+for (var r1 = 0; r1 < 3; ++r1;){ // start a for loop
// in this for loop you win
map_info[0,r1] = "Map "+string(r1); // name of the map
map_info[1,r1] = "Description not set. Pretend this says something really informative or something. Anyways, Shinx is a cool pokemon"; // description of the map
@@ -60,10 +61,12 @@ for (var r1 = 0; r1 < 2; ++r1;){ // start a for loop
map_info[5,r1] = map0; // room goto
++available_maps; // add available_maps by one
}
-
+THIS ISN'T IMPORTANT ANYMORE
+*/
// and now that the failsafe is in let's go put info in
-set_map_info(0,"Test Room",1,"Delving into the code was a mistake",map0,-1);
-set_map_info(1,"First Steps",1,"Everyone has to start somewhere, right?",map1,-1);
+set_map_info("Test Room",0,"Delving into the code was a mistake",map0,-1);
+set_map_info("First Steps",1,"Everyone has to start somewhere, right?",map1,-1);
+set_map_info("The Tower",4,"Don't fall, that's not good for you",the_tower,-1);
@@ -186,6 +189,9 @@ if (oControl.kMenu1Pressed){
cat = 1;
map_scroll = real_scroll;
break;
+ case 1:
+ room_change(trialeditor,0);
+ break;
case 2:
room_change(rm_options,0);
break;
@@ -341,7 +347,9 @@ draw_set_font(fontMenuTinyDefault);
}
draw_set_color(c_white);
draw_set_halign(fa_right);
-draw_text_border(300,190,string(map_info[1,sel]));
+draw_text_border(300,180,string(map_info[1,sel]));
+difficulty_string(map_info[2,sel]);
+draw_set_color(c_white);
draw_text_border(300,200,"Best Time: "+time_string(map_info[3,sel]));
draw_set_color(c_yellow);
draw_text_border(300,210,"Dev Time: "+time_string(map_info[4,sel]));
diff --git a/rooms/empty_room.room.gmx b/rooms/empty_room.room.gmx
new file mode 100644
index 0000000..d926ce8
--- /dev/null
+++ b/rooms/empty_room.room.gmx
@@ -0,0 +1,66 @@
+
+
+
+ 320
+ 240
+ 16
+ 16
+ 0
+ 60
+ 0
+ 12632256
+ -1
+ // map0 functions as the test room.
+oMusicV2.currentbgm = musCaveAmbience;
+ -1
+ -1
+ -1
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1024
+ 768
+ 0
+ 10
+ 0.100000001490116
+
diff --git a/rooms/map1.room.gmx b/rooms/map1.room.gmx
index 99d7c5a..8f619bf 100644
--- a/rooms/map1.room.gmx
+++ b/rooms/map1.room.gmx
@@ -2,7 +2,7 @@
2800
- 768
+ 1768
16
16
0
@@ -10,7 +10,8 @@
0
12632256
-1
- oMusicV2.currentbgm = musCaveAmbience;
+ // this is an unused map because i don't know how to make it work
+oMusicV2.currentbgm = musCaveAmbience;
-1
-1
-1
@@ -51,7 +52,34 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
0
diff --git a/rooms/rm_a0h01.room.gmx b/rooms/rm_a0h01.room.gmx
index 86a6397..db40f65 100644
--- a/rooms/rm_a0h01.room.gmx
+++ b/rooms/rm_a0h01.room.gmx
@@ -47,7 +47,9 @@ if (global.timeofday == 2) {
}
-//global.event[304] = 1; // for testing purposes
+//global.event[304] = 1; // for testing purposes
+
+instance_create(3440, 1104, scr_itemsopen(7));
-1
-1
0
diff --git a/rooms/rm_a1a03.room.gmx b/rooms/rm_a1a03.room.gmx
index 3b5c0ef..e96fdeb 100644
--- a/rooms/rm_a1a03.room.gmx
+++ b/rooms/rm_a1a03.room.gmx
@@ -60,8 +60,8 @@ mus_change(musArea1A);
-
-
+
+
diff --git a/rooms/the_tower.room.gmx b/rooms/the_tower.room.gmx
new file mode 100644
index 0000000..2fc94dc
--- /dev/null
+++ b/rooms/the_tower.room.gmx
@@ -0,0 +1,121 @@
+
+
+
+ 640
+ 3072
+ 16
+ 16
+ 0
+ 60
+ 0
+ 12632256
+ -1
+ oMusicV2.currentbgm = musCaveAmbience;
+global.powergrip = 1;
+ -1
+ -1
+ -1
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1024
+ 768
+ 0
+ 10
+ 0.100000001490116
+
diff --git a/rooms/trialeditor.room.gmx b/rooms/trialeditor.room.gmx
new file mode 100644
index 0000000..29eb1dc
--- /dev/null
+++ b/rooms/trialeditor.room.gmx
@@ -0,0 +1,65 @@
+
+
+
+ 3200
+ 2400
+ 16
+ 16
+ 0
+ 60
+ 0
+ 12632256
+ -1
+ mus_stop(musTrialsMenu); // let the creator focus please
+ -1
+ -1
+ -1
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1024
+ 768
+ 0
+ 10
+ 0.100000001490116
+
diff --git a/scripts/difficulty_string.gml b/scripts/difficulty_string.gml
new file mode 100644
index 0000000..26597d8
--- /dev/null
+++ b/scripts/difficulty_string.gml
@@ -0,0 +1,39 @@
+// difficulty_string()
+var c = c_gray;
+var t = "???";
+var o = 1;
+switch (argument0){
+ case 0:
+ o = 0;
+ break;
+ case 1:
+ c = c_white;
+ t = "*";
+ break;
+ case 2:
+ c = c_white;
+ t = "**";
+ break;
+ case 3:
+ c = c_white;
+ t = "***";
+ break;
+ case 4:
+ c = c_yellow;
+ t = "****";
+ break;
+ case 5:
+ c = c_yellow;
+ t = "*****"
+ break;
+ case 6:
+ c = c_orange;
+ t = "******";
+ break;
+ case 7:
+ c = c_red;
+ t = "*******";
+ break;
+}
+draw_set_color(c);
+draw_text_border(300,190+o,t);
diff --git a/scripts/draw_gui.gml b/scripts/draw_gui.gml
index 4518c6b..c33ba95 100644
--- a/scripts/draw_gui.gml
+++ b/scripts/draw_gui.gml
@@ -250,6 +250,8 @@ draw_sprite(sGUIPBomb, 1, xoff + 1, 4);
}
}
+//input_display(10,225);
+
if (global.ophudshowmap && global.ophudshowmetrcount) {
//draw_background(bgGUIMap, 250 + widescreen_space, 0);
xoff = 250;
diff --git a/scripts/draw_gui_map.gml b/scripts/draw_gui_map.gml
index 7d6a0c0..fc48e28 100644
--- a/scripts/draw_gui_map.gml
+++ b/scripts/draw_gui_map.gml
@@ -33,10 +33,7 @@ if (global.mapmarker) {
*/
draw_set_font(fontGUI2Default);
// clock
-draw_set_color(c_gray);
-if (oTrialLogic.timer_started == 1) then draw_set_color(c_white);
-draw_set_halign(fa_right);
-draw_text_border(argument0+5,argument1+3,time_string(oTrialLogic.timer));
+draw_timer(argument0,argument1);
// speedometer
draw_set_color(c_white);
draw_set_halign(fa_right);
diff --git a/scripts/draw_timer.gml b/scripts/draw_timer.gml
new file mode 100644
index 0000000..d33997a
--- /dev/null
+++ b/scripts/draw_timer.gml
@@ -0,0 +1,7 @@
+// draw_timer(x,y)
+draw_set_color(c_gray);
+if (oTrialLogic.timer_started == 1) then draw_set_color(c_white);
+draw_set_halign(fa_right);
+draw_text_border(argument0-12,argument1+3,time_string_misc(oTrialLogic.timer));
+draw_set_halign(fa_left);
+draw_text_border(argument0-12,argument1+3,time_string_ms(oTrialLogic.timer));
diff --git a/scripts/get_obj_count.gml b/scripts/get_obj_count.gml
new file mode 100644
index 0000000..ba11703
--- /dev/null
+++ b/scripts/get_obj_count.gml
@@ -0,0 +1,6 @@
+//get_obj_count();
+var i = 0;
+with (oEditorSolid){
+ ++i;
+}
+return i;
diff --git a/scripts/input_display.gml b/scripts/input_display.gml
new file mode 100644
index 0000000..96acd0a
--- /dev/null
+++ b/scripts/input_display.gml
@@ -0,0 +1,16 @@
+// input_display(x,y)
+draw_set_color(c_white);
+draw_set_halign(fa_left);
+draw_set_font(fontGUI2Default);
+draw_text_border(argument0,argument1,"<");
+draw_text_border(argument0+5,argument1,">");
+draw_text_border(argument0+10,argument1,"^");
+draw_text_border(argument0+15,argument1,"v");
+
+draw_text_border(argument0+20,argument1,"J");
+draw_text_border(argument0+25,argument1,"S");
+draw_text_border(argument0+30,argument1,"W");
+draw_text_border(argument0+35,argument1,"D");
+
+draw_text_border(argument0+40,argument1,"L");
+draw_text_border(argument0+45,argument1,"M");
diff --git a/scripts/set_map_info.gml b/scripts/set_map_info.gml
index 2f2bcf8..42c85f8 100644
--- a/scripts/set_map_info.gml
+++ b/scripts/set_map_info.gml
@@ -1,7 +1,10 @@
// set_map_info(map_id,map_name,map_tier,map_desc,map_goto,dev_pb)
-map_info[0,argument0] = argument1;
-map_info[2,argument0] = argument2;
-map_info[1,argument0] = argument3;
-map_info[5,argument0] = argument4;
-map_info[4,argument0] = argument5;
+map_info[0,available_maps] = argument0;
+map_info[2,available_maps] = argument1;
+map_info[1,available_maps] = argument2;
+map_info[5,available_maps] = argument3;
+map_info[4,available_maps] = argument4;
+map_info[3,available_maps] = -1;
+
+++available_maps;
diff --git a/scripts/time_string_misc.gml b/scripts/time_string_misc.gml
new file mode 100644
index 0000000..4ac2500
--- /dev/null
+++ b/scripts/time_string_misc.gml
@@ -0,0 +1,14 @@
+// time_string_misc(time_in_tics)
+
+// make the vars
+var sc = string(floor((argument0/60) mod 60));
+var mi = string(floor(argument0/3600));
+// check if they're right length
+if (string_length(sc) < 2) then sc = "0"+sc;
+// and check to make sure this needs to be unset if negative
+if (argument0 < 0){
+ sc = "--";
+ mi = "-";
+}
+// done
+return mi+":"+sc;
diff --git a/scripts/time_string_ms.gml b/scripts/time_string_ms.gml
new file mode 100644
index 0000000..9a3630d
--- /dev/null
+++ b/scripts/time_string_ms.gml
@@ -0,0 +1,12 @@
+// time_string_ms(time_in_tics)
+
+// make the vars
+var ms = string(floor((argument0 mod 60)*1.667));
+// check if they're right length
+if (string_length(ms) < 2) then ms = "0"+ms;
+// and check to make sure this needs to be unset if negative
+if (argument0 < 0){
+ ms = "--";
+}
+// done
+return "."+ms;
diff --git a/scripts/time_string_nodc.gml b/scripts/time_string_nodc.gml
new file mode 100644
index 0000000..fa96e48
--- /dev/null
+++ b/scripts/time_string_nodc.gml
@@ -0,0 +1,14 @@
+// time_string_nodc(time_in_tics)
+
+// make the vars
+var sc = string(floor((argument0/60) mod 60));
+var mi = string(floor(argument0/3600));
+// check if they're right length
+if (string_length(sc) < 2) then sc = "0"+sc;
+// and check to make sure this needs to be unset if negative
+if (argument0 < 0){
+ ms = "--";
+ sc = "--";
+}
+// done
+return mi+":"+sc;
diff --git a/scripts/trials_check_save.gml b/scripts/trials_check_save.gml
new file mode 100644
index 0000000..ca07cc2
--- /dev/null
+++ b/scripts/trials_check_save.gml
@@ -0,0 +1,7 @@
+if (directory_exists(working_directory + "/time_trials_custom")){ // load required data
+
+}else{ // better make a new save!!
+ directory_create(working_directory + "/time_trials_custom");
+ directory_create(working_directory + "/time_trials_custom/trials");
+ directory_create(working_directory + "/time_trials_custom/custom_music");
+}
diff --git a/sound/musTrialsPlay.sound.gmx b/sound/musTrialsPlay.sound.gmx
new file mode 100644
index 0000000..d6813f7
--- /dev/null
+++ b/sound/musTrialsPlay.sound.gmx
@@ -0,0 +1,29 @@
+
+
+ 3
+ .ogg
+ sound\audio\musTrialsPlay.ogg
+ 0
+
+ 1
+
+ 0
+
+ 192
+
+
+ 44100
+
+
+ 1
+
+
+ 16
+
+ -1
+ musTrialsPlay.ogg
+ 1
+ 1
+ 0
+ 0
+
diff --git a/sprites/sEditorCursor.sprite.gmx b/sprites/sEditorCursor.sprite.gmx
new file mode 100644
index 0000000..546a87e
--- /dev/null
+++ b/sprites/sEditorCursor.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 7
+ 0
+ 7
+ 0
+ 0
+
+ 0
+
+ 0
+ 8
+ 8
+
+ images\sEditorCursor_0.png
+
+
diff --git a/sprites/sEditorStart.sprite.gmx b/sprites/sEditorStart.sprite.gmx
new file mode 100644
index 0000000..d0165b3
--- /dev/null
+++ b/sprites/sEditorStart.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 16
+ 48
+ 1
+ 0
+ 0
+ 0
+ 5
+ 26
+ 9
+ 47
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 48
+
+ images\sEditorStart_0.png
+
+
diff --git a/sprites/sEditorTab.sprite.gmx b/sprites/sEditorTab.sprite.gmx
new file mode 100644
index 0000000..fac6fc1
--- /dev/null
+++ b/sprites/sEditorTab.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 213
+ 0
+ 0
+ 0
+ -1
+ 0
+ 0
+ 425
+ 0
+ 59
+ 0
+ 0
+
+ 0
+
+ 0
+ 426
+ 60
+
+ images\sEditorTab_0.png
+
+