diff --git a/src/Backgrounds/_resources.list.xml b/src/Backgrounds/_resources.list.xml
new file mode 100644
index 0000000..70032a2
--- /dev/null
+++ b/src/Backgrounds/_resources.list.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Constants.xml b/src/Constants.xml
new file mode 100644
index 0000000..9fba3d9
--- /dev/null
+++ b/src/Constants.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Extension Packages.xml b/src/Extension Packages.xml
new file mode 100644
index 0000000..5210dc7
--- /dev/null
+++ b/src/Extension Packages.xml
@@ -0,0 +1,4 @@
+
+
+ Faucet Networking
+
diff --git a/src/Fonts/_resources.list.xml b/src/Fonts/_resources.list.xml
new file mode 100644
index 0000000..70032a2
--- /dev/null
+++ b/src/Fonts/_resources.list.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Game Information.txt b/src/Game Information.txt
new file mode 100644
index 0000000..920a3cc
Binary files /dev/null and b/src/Game Information.txt differ
diff --git a/src/Game Information.xml b/src/Game Information.xml
new file mode 100644
index 0000000..6c9b782
--- /dev/null
+++ b/src/Game Information.xml
@@ -0,0 +1,16 @@
+
+
+
+ -1
+ -1
+ 600
+ 400
+
+ true
+ FFFFE1
+ Game Information
+ false
+ true
+ true
+ false
+
diff --git a/src/Global Game Settings.xml b/src/Global Game Settings.xml
new file mode 100644
index 0000000..d5070c5
--- /dev/null
+++ b/src/Global Game Settings.xml
@@ -0,0 +1,66 @@
+
+
+
+ -1
+ true
+ false
+ false
+ 000000
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ 255
+
+
+ LOADBAR_DEFAULT
+ true
+
+
+ true
+ false
+ false
+ false
+ false
+ false
+
+
+ true
+ false
+ false
+ false
+
+
+ 175401986
+ Ikewise
+ 1.0
+
+ 1
+ 0
+ 0
+ 0
+ Exoverse Games
+ GimelBot
+
+ GimelBot v1.0
+ 66d32cb0f1e18a45a8eb28ee48ffd6f6
+
+
+ PRIORITY_NORMAL
+ true
+ false
+
+
+ false
+ false
+ false
+
+
diff --git a/src/Objects/_resources.list.xml b/src/Objects/_resources.list.xml
new file mode 100644
index 0000000..0176242
--- /dev/null
+++ b/src/Objects/_resources.list.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/Objects/objNetControl.events/Close Button.xml b/src/Objects/objNetControl.events/Close Button.xml
new file mode 100644
index 0000000..18b8908
--- /dev/null
+++ b/src/Objects/objNetControl.events/Close Button.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ CODE
+ false
+ false
+ true
+ CODE
+
+ false
+ false
+ .self
+
+ if(serverSocket != noone) {
+ irc_disconnect("Program ended by user");
+ socket_destroy(serverSocket);
+}
+buffer_destroy(dataBuffer);
+font_delete(fntGameSystem);
+if background_exists(pseudoSurface){background_delete(pseudoSurface)}
+game_end();
+
+
+
+
+
diff --git a/src/Objects/objNetControl.events/Create.xml b/src/Objects/objNetControl.events/Create.xml
new file mode 100644
index 0000000..07dc7e6
--- /dev/null
+++ b/src/Objects/objNetControl.events/Create.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+ CODE
+ false
+ false
+ true
+ CODE
+
+ false
+ false
+ .self
+
+ textNick=textbox_create();
+textNick.single_line=true;
+textNick.text=botnick;
+textNick.color_selected=c_black;
+textNick.color_selection=$00FF00;
+
+textServer=textbox_create();
+textServer.single_line=true;
+textServer.text=server;
+textServer.color_selected=c_black;
+textServer.color_selection=$00FF00;
+
+textPort=textbox_create();
+textPort.single_line=true;
+textPort.text=string(port);
+textPort.max_chars=4;
+textPort.filter_chars="0123456789";
+textPort.color_selected=c_black;
+textPort.color_selection=$00FF00;
+
+textChannel=textbox_create();
+textChannel.single_line=true;
+textChannel.text=channel;
+textChannel.color_selected=c_black;
+textChannel.color_selection=$00FF00;
+
+textbox_focus=textNick;
+
+// Scrollbar
+
+chatScrollbar=scrollbar_create(1,sprScrollbar,1);
+checkScrollbar=1;
+
+
+
+
+
diff --git a/src/Objects/objNetControl.events/Draw.xml b/src/Objects/objNetControl.events/Draw.xml
new file mode 100644
index 0000000..0811217
--- /dev/null
+++ b/src/Objects/objNetControl.events/Draw.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+ CODE
+ false
+ false
+ true
+ CODE
+
+ false
+ false
+ .self
+
+ room_caption="GimelBot v"+botversion/*+" - Framerate: "+string(fps)+"/120"*/;
+
+
+// Draw the obtained data
+if(serverSocket != noone) {
+
+ if background_exists(pseudoSurface){draw_background(pseudoSurface,0,0);}
+ scrollbar_draw_ext(chatScrollbar,room_width-16,0,room_height-32,1,string_count(EOL,chatLog));
+
+} else {
+ var dy;
+
+ draw_text(1,1,errorMessage);
+
+ // Bot Nick field
+ dy=0;
+ draw_text(251,168,"Bot Nickname:");
+ draw_rectangle(422,164,550,180,1); // Text border
+ textbox_draw(textNick,427,168,547,178);
+
+ // Server field
+ dy+=1
+ draw_text(251,168+dy*32,"Server:");
+ draw_rectangle(422,164+dy*32,550,180+dy*32,1); // Text border
+ textbox_draw(textServer,427,168+dy*32,547,178+dy*32);
+
+ // Port field
+ dy+=1
+ draw_text(251,168+dy*32,"Port:");
+ draw_rectangle(422,164+dy*32,550,180+dy*32,1); // Text border
+ textbox_draw(textPort,427,168+dy*32,547,178+dy*32);
+
+ // Channel field
+ dy+=1
+ draw_text(251,168+dy*32,"Channel:");
+ draw_rectangle(422,164+dy*32,550,180+dy*32,1); // Text border
+ textbox_draw(textChannel,427,168+dy*32,547,178+dy*32);
+
+ // Connect button
+ draw_rectangle(357,307,444,337,1);
+ if((mouse_x>356)&&(mouse_x<445)&&(mouse_y>306)&&(mouse_y<338)){
+ draw_rectangle(357,307,444,337,0);
+ draw_set_color(c_black);
+ window_set_cursor(cr_handpoint);
+ if(mouse_check_button_released(mb_left)){window_set_cursor(cr_default); irc_connect();}
+ } else {
+ window_set_cursor(cr_default);
+ }
+ draw_text(374,318,"Connect");
+ if(draw_get_color()==c_black){draw_set_color($00FF00);}
+}
+
+
+
+
+
diff --git a/src/Objects/objNetControl.events/Step.xml b/src/Objects/objNetControl.events/Step.xml
new file mode 100644
index 0000000..40ffa98
--- /dev/null
+++ b/src/Objects/objNetControl.events/Step.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ CODE
+ false
+ false
+ true
+ CODE
+
+ false
+ false
+ .self
+
+ if(serverSocket != noone) {
+ if(tcp_eof(serverSocket)){
+ if(socket_has_error(serverSocket)) {
+ errorMessage="Connection error: " + socket_error(serverSocket);
+ } else {
+ errorMessage=currentMessage;
+ }
+ socket_destroy(serverSocket);
+ serverSocket = noone;
+ } else {
+ tcp_receive_available(serverSocket);
+ write_buffer(dataBuffer,serverSocket);
+
+ while(buffer_size(dataBuffer)) {
+ data = read_delimited_string(dataBuffer,EOL);
+ if(is_string(data)) {
+ //�A�delimited�string�was�found�and�returned,�do�something�with�it
+ currentMessage=data;
+ interpret_message();
+ } else {
+ //�no�delimiter�found�(or�invalid�buffer)
+ buffer_clear(dataBuffer);
+ }
+ }
+
+ if(get_scrollbarvalue(chatScrollbar)!=checkScrollbar){
+ log_draw(1,0,1,50);
+ checkScrollbar=get_scrollbarvalue(chatScrollbar);
+ }
+ }
+}
+
+
+
+
+
diff --git a/src/Objects/objNetControl.xml b/src/Objects/objNetControl.xml
new file mode 100644
index 0000000..0e725f7
--- /dev/null
+++ b/src/Objects/objNetControl.xml
@@ -0,0 +1,10 @@
+
+
diff --git a/src/Objects/objTextbox.xml b/src/Objects/objTextbox.xml
new file mode 100644
index 0000000..e09c2a7
--- /dev/null
+++ b/src/Objects/objTextbox.xml
@@ -0,0 +1,10 @@
+
+
diff --git a/src/Paths/_resources.list.xml b/src/Paths/_resources.list.xml
new file mode 100644
index 0000000..70032a2
--- /dev/null
+++ b/src/Paths/_resources.list.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Rooms/_resources.list.xml b/src/Rooms/_resources.list.xml
new file mode 100644
index 0000000..212492e
--- /dev/null
+++ b/src/Rooms/_resources.list.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/Rooms/rmTest.xml b/src/Rooms/rmTest.xml
new file mode 100644
index 0000000..8eed7e8
--- /dev/null
+++ b/src/Rooms/rmTest.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+ false
+
+
+ 120
+ false
+ game_init();
+
+ 000000
+ true
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+ false
+
+
+
+ true
+ true
+ false
+
+
+ false
+
+
+
+
diff --git a/src/Scripts/General/_resources.list.xml b/src/Scripts/General/_resources.list.xml
new file mode 100644
index 0000000..2dce94b
--- /dev/null
+++ b/src/Scripts/General/_resources.list.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/Scripts/General/game_init.gml b/src/Scripts/General/game_init.gml
new file mode 100644
index 0000000..5099934
--- /dev/null
+++ b/src/Scripts/General/game_init.gml
@@ -0,0 +1,32 @@
+globalvar server, port, channel, botnick, botversion;
+
+server="192.168.0.40";
+port=6667;
+channel="#lobby";
+botnick="GimelBot";
+
+botversion="1.0";
+
+globalvar serverSocket, dataBuffer, errorMessage, currentMessage, printMessage, pseudoSurface, EOL;
+
+serverSocket=noone;
+dataBuffer=buffer_create();
+errorMessage="";
+EOL=chr(13)+chr(10);
+
+globalvar chatLog, chatWidth;
+chatLog="";
+chatWidth=room_width-16
+
+globalvar fntGameSystem, fntRomulus, fntCyberspace;
+
+fntGameSystem = font_add_sprite(sprGameSystem,ord(' '),false,0);
+//fntRomulus = font_add_sprite(sprRomulus,ord('!'),true,2);
+//fntCyberspace = font_add_sprite(sprCyberspace,ord(' '),false,0);
+draw_set_font(fntGameSystem);
+draw_set_color($00FF00);
+draw_set_halign(fa_left);
+draw_set_valign(fa_top);
+
+
+instance_create(0,0,objNetControl);
diff --git a/src/Scripts/General/num_prefix.gml b/src/Scripts/General/num_prefix.gml
new file mode 100644
index 0000000..0f719ca
--- /dev/null
+++ b/src/Scripts/General/num_prefix.gml
@@ -0,0 +1,21 @@
+var strIN;
+var strST;
+
+/*
+argument 0 = score (as a string)
+argument 1 = total width required
+*/
+
+strIN = string(argument0);
+if argument1 > string_length(strIN)
+{
+ strST = string_repeat("0", argument1 - string_length(strIN));
+}
+else
+{
+ strST = "";
+}
+
+strST += strIN;
+
+return strST;
diff --git a/src/Scripts/General/string_parse_single.gml b/src/Scripts/General/string_parse_single.gml
new file mode 100644
index 0000000..2fec3fd
--- /dev/null
+++ b/src/Scripts/General/string_parse_single.gml
@@ -0,0 +1,46 @@
+/// string_parse_single(str,token,n,ignore)
+//
+// Returns the nth substring from a string of elements separated by
+// a given token, or the separator token if an error occurred.
+//
+// eg. string_parse_single("cat|dog|house|bee", "|", 2, true) == "dog"
+//
+// str elements, string
+// token element separator, string
+// n element to return, real
+// ignore ignore empty substrings, bool
+//
+/// GMLscripts.com/license
+{
+ var str, token, substr, ignore, N, tlen, temp, i;
+
+ str = argument0;
+ token = argument1;
+ N = argument2;
+ ignore = argument3;
+
+ tlen = string_length( token);
+
+ substr = "";
+ i = 0;
+ while( string_length( str) != 0 && i < N) {
+ temp = string_pos( token, str);
+ if( temp) {
+ if( temp != 1 || !ignore) {
+ substr = string_copy(str, 1, temp - 1);
+ i += 1;
+ }
+ str = string_copy( str, temp + tlen, string_length( str));
+ }
+ else {
+ substr = str;
+ i += 1;
+ str = "";
+ }
+ }
+
+ if( i != N)
+ return "";
+ else
+ return substr;
+}
diff --git a/src/Scripts/IRC Functions/_resources.list.xml b/src/Scripts/IRC Functions/_resources.list.xml
new file mode 100644
index 0000000..6631e19
--- /dev/null
+++ b/src/Scripts/IRC Functions/_resources.list.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Scripts/IRC Functions/bot_commands.gml b/src/Scripts/IRC Functions/bot_commands.gml
new file mode 100644
index 0000000..fa1ff2d
--- /dev/null
+++ b/src/Scripts/IRC Functions/bot_commands.gml
@@ -0,0 +1,29 @@
+var sender, hostmask, msgtype, target, msgdata;
+sender=argument0;
+hostmask=argument1;
+msgtype=argument2;
+target=argument3;
+msgdata=argument4;
+
+
+// GimelBot main commands begin here
+if(msgtype=="PRIVMSG") {
+
+ if((msgdata=="!quit")&&(sender=="Ikewise")){irc_disconnect("Received shutdown command from "+sender);};
+ if(msgdata=="!part"){part_channel(target);};
+
+ if(string_pos("!slap",msgdata)==1) {
+ switch(string_pos(" ",msgdata)){
+ case 0:
+ send_ctcp("PRIVMSG",target,"ACTION slaps "+sender+" around a bit with a large trout");
+ break;
+ default:
+ send_ctcp("PRIVMSG",target,"ACTION slaps "+string_copy(msgdata,string_pos(" ",msgdata)+1,string_length(msgdata))+" around a bit with a large trout");
+ break;
+ }
+ }
+
+ if(msgdata=="chk"){send_message(target,sender+": ack");};
+ if(msgdata=="."){send_message(target,"omg a meteor");};
+
+}
diff --git a/src/Scripts/IRC Functions/interpret_message.gml b/src/Scripts/IRC Functions/interpret_message.gml
new file mode 100644
index 0000000..88d9fb2
--- /dev/null
+++ b/src/Scripts/IRC Functions/interpret_message.gml
@@ -0,0 +1,171 @@
+var sender, hostmask, msgtype, target, msgdata;
+
+// Respond to server pings
+if(string_pos("PING",currentMessage)==1) {
+ write_string(serverSocket,"PONG "+string_parse_single(currentMessage," ",2,true)+EOL);
+ socket_send(serverSocket);
+}
+
+
+// Check if currentMessage is from a user or Service
+if(string_pos("!",string_parse_single(currentMessage," ",1,true))) {
+ sender = string_copy(currentMessage,2,string_pos("!",currentMessage)-2);
+ hostmask = string_copy(currentMessage,string_pos("!",currentMessage)+1,string_pos(" ",currentMessage)-string_pos("!",currentMessage)-1);
+ msgtype = string_parse_single(currentMessage," ",2,true);
+ target = string_parse_single(currentMessage," ",3,true);
+
+ if(string_count(" ",currentMessage)>2) {
+ msgdata = string_copy(currentMessage,string_pos(target+" ",currentMessage)+string_length(target)+1,string_length(currentMessage));
+ } else {
+ msgdata="";
+ }
+
+ // Cleanup
+ if(msgtype!="QUIT" && string_pos(":",target)==1){target=string_copy(target,2,string_length(target)-1)}
+ if((msgtype=="PART"||msgtype=="TOPIC"||msgtype=="INVITE"||msgtype=="NOTICE"||msgtype=="PRIVMSG") && msgdata!=""){msgdata=string_copy(msgdata,2,string_length(msgdata)-1)}
+
+} else {
+ if(string_pos("NOTICE AUTH",currentMessage)==1) {
+ printMessage = currentMessage;
+ log_update(printMessage,chatWidth);
+ } else {
+ // Message not from user or Service, do not print
+ printMessage = "";
+ }
+ return "";
+}
+
+
+// Format the message for display
+switch(msgtype) {
+ case "QUIT":
+ if(target==":"){printMessage="GLOBAL: "+timestamp()+"* Quits: "+sender+" ("+hostmask+")"};
+ if(target!=":"){printMessage="GLOBAL: "+timestamp()+"* Quits: "+sender+" ("+hostmask+") ("+string_copy(target,2,string_length(target)-1)+" "+msgdata+")"};
+ break;
+ case "JOIN":
+ if(sender==botnick){printMessage=target+": "+timestamp()+"* Now talking in "+target};
+ if(sender!=botnick){printMessage=target+": "+timestamp()+"* Joins: "+sender+" ("+hostmask+")"};
+ break;
+ case "PART":
+ if(msgdata==""){printMessage=target+": "+timestamp()+"* Parts: "+sender+" ("+hostmask+")"};
+ if(msgdata!=""){printMessage=target+": "+timestamp()+"* Parts: "+sender+" ("+hostmask+") ("+msgdata+")"};
+ break;
+ case "KICK":
+ if(string_parse_single(msgdata," ",1,true)!=botnick){
+ printMessage=target+": "+timestamp()+"* "+string_parse_single(msgdata," ",1,true)+" was kicked by "+sender+" ("+string_parse_single(msgdata,":",2,true)+")";
+ } else {
+ printMessage=target+": "+timestamp()+"* You were kicked from "+target+" by "+sender+" ("+string_parse_single(msgdata,":",2,true)+")";
+ join_channel(target);
+ }
+ break;
+ case "MODE":
+ printMessage=target+": "+timestamp()+"* "+sender+" sets mode: "+msgdata;
+ break;
+ case "TOPIC":
+ printMessage=target+": "+timestamp()+"* "+sender+" changes topic to '"+msgdata+"'";
+ break;
+ case "INVITE":
+ printMessage="GLOBAL: "+timestamp()+"* "+sender+" ("+hostmask+") invites you to join "+msgdata;
+ join_channel(msgdata);
+ break;
+ case "NICK":
+ printMessage="GLOBAL: "+timestamp()+"* "+sender+" is now known as "+target;
+ break;
+ case "NOTICE":
+ if(string_pos("#",target)!=1){printMessage="DIRECT ("+sender+"): "+timestamp()+"* NOTICE: -"+sender+"- "+msgdata};
+ if(string_pos("#",target)==1){printMessage=target+": "+timestamp()+"* NOTICE: -"+sender+"- "+msgdata};
+ break;
+ case "PRIVMSG":
+ if(string_pos("#",target)==1){ // If a channel
+ if(string_pos(chr(1),msgdata)==1){
+ if(string_pos(" ",msgdata)){
+ switch(string_parse_single(msgdata," ",1,true)){
+ case chr(1)+"ACTION":
+ printMessage=target+": "+timestamp()+"* "+sender+" "+string_copy(msgdata,string_pos(" ",msgdata)+1,string_length(msgdata));
+ break;
+ default:
+ printMessage=target+": "+timestamp()+"* CTCP: "+string_copy(msgdata,2,string_pos(" ",msgdata)-2)+" "+string_parse_single(msgdata," ",2,true);
+ break;
+ }
+ } else {
+ printMessage=target+": "+timestamp()+"* CTCP: "+string_copy(msgdata,2,string_length(msgdata)-2);
+ }
+ } else {
+ printMessage=target+": "+timestamp()+"<"+sender+"> "+msgdata;
+ }
+ } else { // If not a channel
+ target = sender;
+ if(string_pos(chr(1),msgdata)==1){
+ if(string_pos(" ",msgdata)){
+ switch(string_parse_single(msgdata," ",1,true)){
+ case chr(1)+"ACTION":
+ printMessage="DIRECT ("+sender+"): "+timestamp()+"* "+sender+" "+string_copy(msgdata,string_pos(" ",msgdata)+1,string_length(msgdata));
+ break;
+ default:
+ printMessage="DIRECT ("+sender+"): "+timestamp()+"* CTCP: "+string_copy(msgdata,2,string_pos(" ",msgdata)-2)+" "+string_parse_single(msgdata," ",2,true);
+ break;
+ }
+ } else {
+ printMessage="DIRECT ("+sender+"): "+timestamp()+"* CTCP: "+string_copy(msgdata,2,string_length(msgdata)-2);
+ }
+ } else {
+ printMessage="DIRECT ("+sender+"): "+timestamp()+"<"+sender+"> "+msgdata;
+ }
+ }
+ break;
+
+ default: break;
+}
+
+
+// Add the incoming message to the display
+if(printMessage!="") {
+ log_update(printMessage,chatWidth);
+}
+
+
+// CTCP Responses
+if(msgtype=="PRIVMSG"){
+ if(string_pos(chr(1),msgdata)==1){
+ if(string_pos(" ",msgdata)){
+ if(string_parse_single(msgdata," ",1,true)==chr(1)+"PING"){send_ctcp("NOTICE",sender,"PING "+string_copy(msgdata,string_pos(" ",msgdata)+1,string_length(msgdata)-(string_pos(" ",msgdata)+1)));};
+ } else {
+ if(string_copy(msgdata,1,5)==chr(1)+"TIME"){
+ var date, weekday, month;
+ date = date_current_datetime();
+ switch(date_get_weekday(date)){
+ case 1: weekday="Sun"; break;
+ case 2: weekday="Mon"; break;
+ case 3: weekday="Tue"; break;
+ case 4: weekday="Wed"; break;
+ case 5: weekday="Thur"; break;
+ case 6: weekday="Fri"; break;
+ case 7: weekday="Sat"; break;
+ }
+ switch(date_get_month(date)){
+ case 1: month="Jan"; break;
+ case 2: month="Feb"; break;
+ case 3: month="Mar"; break;
+ case 4: month="Apr"; break;
+ case 5: month="May"; break;
+ case 6: month="Jun"; break;
+ case 7: month="July"; break;
+ case 8: month="Aug"; break;
+ case 9: month="Sep"; break;
+ case 10: month="Oct"; break;
+ case 11: month="Nov"; break;
+ case 12: month="Dec"; break;
+ }
+ send_ctcp("NOTICE",sender,"TIME "+weekday+" "+month+" "+string(date_get_day(date))+" "+string(date_get_hour(date))+":"+string(date_get_minute(date))+":"+string(date_get_second(date))+" "+string(date_get_year(date)));
+ }
+ if(string_copy(msgdata,1,8)==chr(1)+"VERSION"){send_ctcp("NOTICE",sender,"VERSION GimelBot v"+botversion+" by Ikewise");};
+ }
+ }
+}
+
+
+// Run main bot functions
+bot_commands(sender, hostmask, msgtype, target, msgdata);
+
+
+
diff --git a/src/Scripts/IRC Functions/irc_connect.gml b/src/Scripts/IRC Functions/irc_connect.gml
new file mode 100644
index 0000000..9ce1859
--- /dev/null
+++ b/src/Scripts/IRC Functions/irc_connect.gml
@@ -0,0 +1,15 @@
+botnick=textNick.text;
+server=textServer.text;
+port=real(textPort.text);
+channel=textChannel.text;
+
+chatLog="Connecting to "+server+":"+string(port)+"..."+EOL;
+
+serverSocket=tcp_connect(server, port);
+
+write_string(serverSocket, "NICK "+ botnick + chr(10));
+write_string(serverSocket, "USER "+ botnick +" "+ botnick +" "+ botnick +" :GameMaker IRC bot" + EOL);
+
+socket_send(serverSocket);
+
+join_channel(channel);
diff --git a/src/Scripts/IRC Functions/irc_disconnect.gml b/src/Scripts/IRC Functions/irc_disconnect.gml
new file mode 100644
index 0000000..9f972c6
--- /dev/null
+++ b/src/Scripts/IRC Functions/irc_disconnect.gml
@@ -0,0 +1,5 @@
+write_string(serverSocket, "QUIT :" + argument0 + EOL);
+socket_send(serverSocket);
+
+socket_destroy(serverSocket);
+serverSocket = noone;
diff --git a/src/Scripts/IRC Functions/join_channel.gml b/src/Scripts/IRC Functions/join_channel.gml
new file mode 100644
index 0000000..28a0482
--- /dev/null
+++ b/src/Scripts/IRC Functions/join_channel.gml
@@ -0,0 +1,2 @@
+write_string(serverSocket, "JOIN :" + argument0 + EOL);
+socket_send(serverSocket);
diff --git a/src/Scripts/IRC Functions/part_channel.gml b/src/Scripts/IRC Functions/part_channel.gml
new file mode 100644
index 0000000..2a3f84c
--- /dev/null
+++ b/src/Scripts/IRC Functions/part_channel.gml
@@ -0,0 +1,2 @@
+write_string(serverSocket, "PART " + argument0 + EOL);
+socket_send(serverSocket);
diff --git a/src/Scripts/IRC Functions/send_ctcp.gml b/src/Scripts/IRC Functions/send_ctcp.gml
new file mode 100644
index 0000000..e98f36a
--- /dev/null
+++ b/src/Scripts/IRC Functions/send_ctcp.gml
@@ -0,0 +1,45 @@
+// Sends a CTCP message to the IRC server.
+// send_message(type, target, message);
+
+var type, target, message;
+
+type = argument0;
+target = argument1;
+message = argument2;
+
+write_string(serverSocket,type+" "+target+" :"+chr(1)+message+chr(1)+EOL);
+socket_send(serverSocket);
+
+
+if(string_pos("#",target)==1) {
+ switch(type){
+ case "PRIVMSG":
+ if(string_pos("ACTION",message)==1) {
+ log_update(target+": "+timestamp()+"* "+botnick+" "+string_copy(message,8,string_length(message)),chatWidth);
+ } else {
+ log_update(target+": "+timestamp()+"* CTCP SEND: "+message,chatWidth);
+ }
+ break;
+ case "NOTICE":
+ log_update(target+": "+timestamp()+"* CTCP RESPOND: "+message,chatWidth);
+ break;
+ }
+} else {
+ switch(type){
+ case "PRIVMSG":
+ if(string_pos("ACTION",message)==1) {
+ log_update("DIRECT ("+target+"): "+timestamp()+"* "+botnick+" "+string_copy(message,7,string_length(message)),chatWidth);
+ } else {
+ log_update("DIRECT ("+target+"): "+timestamp()+"* CTCP SEND: "+message,chatWidth);
+ }
+ break;
+ case "NOTICE":
+ log_update("DIRECT ("+target+"): "+timestamp()+"* CTCP RESPOND: "+message,chatWidth);
+ break;
+ }
+}
+
+
+
+
+
diff --git a/src/Scripts/IRC Functions/send_message.gml b/src/Scripts/IRC Functions/send_message.gml
new file mode 100644
index 0000000..c2d37b5
--- /dev/null
+++ b/src/Scripts/IRC Functions/send_message.gml
@@ -0,0 +1,17 @@
+// Sends a message to the IRC server.
+// send_message(target, message);
+
+var target, message;
+
+target = argument0;
+message = argument1;
+
+write_string(serverSocket,"PRIVMSG "+target+" :"+message+EOL);
+socket_send(serverSocket);
+
+
+if(string_pos("#",target)==1) {
+ log_update(target+": "+timestamp()+"<"+botnick+"> "+message,chatWidth);
+} else {
+ log_update("DIRECT ("+target+"): "+timestamp()+"<"+botnick+"> "+message,chatWidth);
+}
diff --git a/src/Scripts/IRC Functions/send_notice.gml b/src/Scripts/IRC Functions/send_notice.gml
new file mode 100644
index 0000000..fee8fe7
--- /dev/null
+++ b/src/Scripts/IRC Functions/send_notice.gml
@@ -0,0 +1,17 @@
+// Sends a notice to the IRC server.
+// send_notice(target, message);
+
+var target, message;
+
+target = argument0;
+message = argument1;
+
+write_string(serverSocket,"NOTICE "+target+" :"+message+EOL);
+socket_send(serverSocket);
+
+
+if(string_pos("#",target)==1) {
+ log_update(target+": "+timestamp()+"* NOTICE: -"+botnick+"- "+message,chatWidth);
+} else {
+ log_update("DIRECT ("+target+"): "+timestamp()+"* NOTICE: -"+botnick+"- "+message,chatWidth);
+}
diff --git a/src/Scripts/IRC Functions/timestamp.gml b/src/Scripts/IRC Functions/timestamp.gml
new file mode 100644
index 0000000..94ba1d5
--- /dev/null
+++ b/src/Scripts/IRC Functions/timestamp.gml
@@ -0,0 +1,9 @@
+var time, hour, minute, output;
+time = date_current_datetime();
+hour = date_get_hour(time);
+minute = date_get_minute(time);
+if(hour < 10) {hour = "0" + string(hour);}
+if(minute < 10) {minute = "0" + string(minute);}
+output = "[" + string(hour) + ":" + string(minute) + "] ";
+
+return output;
diff --git a/src/Scripts/Scrollbars/_resources.list.xml b/src/Scripts/Scrollbars/_resources.list.xml
new file mode 100644
index 0000000..517a1d4
--- /dev/null
+++ b/src/Scripts/Scrollbars/_resources.list.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/Scripts/Scrollbars/get_scrollbarvalue.gml b/src/Scripts/Scrollbars/get_scrollbarvalue.gml
new file mode 100644
index 0000000..94fe650
--- /dev/null
+++ b/src/Scripts/Scrollbars/get_scrollbarvalue.gml
@@ -0,0 +1,12 @@
+/*
+
+ CALL: get_scrollbarvalue(id)
+
+ INFO: Returns with the value of the selected scrollbar.
+
+ ARGUMENTS: id = The ID of the scrollbar.
+
+ WRITTEN BY: Davve
+
+*/
+return round(global.___sb[argument0,1])
diff --git a/src/Scripts/Scrollbars/scrollbar_create.gml b/src/Scripts/Scrollbars/scrollbar_create.gml
new file mode 100644
index 0000000..70f1f52
--- /dev/null
+++ b/src/Scripts/Scrollbars/scrollbar_create.gml
@@ -0,0 +1,34 @@
+/*
+
+ CALL: scrollbar_create(type,sprite,mousewheel)
+
+ INFO: Creates a new scrollbar and returns with the ID of it.
+
+ ARGUMENTS: type = 0 if horizontal,
+ 1 if vertical.
+ sprite = The sprite of the scrollbar.
+ mousewheel = If you should be able to scroll with the mouse wheel.
+
+ WRITTEN BY: Davve
+
+*/
+var type,spr,mw;
+type=argument0
+spr=argument1
+mw=argument2
+
+if (!variable_global_exists("___sbcount")) {
+ global.___sbcount=0
+ global.___sbtimer=0
+ global.___sbdrag=-1
+ global.___mxprev=mouse_x
+ global.___myprev=mouse_y
+ global.___sbcurrent=-1
+}
+global.___sb[global.___sbcount,0]=type
+global.___sb[global.___sbcount,1]=0
+global.___sb[global.___sbcount,2]=spr
+global.___sb[global.___sbcount,3]=mw
+global.___sbcount+=1
+
+return global.___sbcount-1
diff --git a/src/Scripts/Scrollbars/scrollbar_draw.gml b/src/Scripts/Scrollbars/scrollbar_draw.gml
new file mode 100644
index 0000000..1ec3f9f
--- /dev/null
+++ b/src/Scripts/Scrollbars/scrollbar_draw.gml
@@ -0,0 +1,82 @@
+/*
+
+ CALL: scrollbar_draw(id,x,y,w/h,maxw/h)
+
+ INFO: Draws the selected scrollbar. The value is measured in pixels.
+
+ ARGUMENTS: id = The ID of the scrollbar to draw.
+ x = The x starting position of the scrollbar.
+ y = The y starting position of the scrollbar.
+ w/h = The width or height of the scrollbar (buttons not included).
+ maxw/h = The maximum width or height (buttons not included).
+
+ WRITTEN BY: Davve
+
+*/
+var sb,xx,yy,wh,mwh,spr,sw,sh,sel,sel2,a,sp,ep,tp;
+sb=argument0
+xx=argument1
+yy=argument2
+wh=max(-16,argument3)
+mwh=argument4
+spr=global.___sb[sb,2]
+sw=sprite_get_width(spr)
+sh=sprite_get_height(spr)
+tp=global.___sb[sb,0]
+
+if (global.___sbcurrent=sb) {
+ global.___sbtimer=max(0,(global.___sbtimer-1)*mouse_check_button(mb_left))
+}
+for (a=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) a<((xx+wh+sw)*(tp=0))+((yy+wh+sh)*(tp>0)) a+=2) {
+ draw_sprite(spr,(15*(tp=0))+(19*(tp>0)),(a*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+(a*(tp>0)))
+}
+if ((!mouse_check_button(mb_left) && global.___sbdrag>-1)) {
+ global.___sbdrag=-1
+}
+if (mwh>wh && wh>0) {
+ sp=((xx+sw)*(tp=0))+((yy+sh)*(tp>0))+(global.___sb[sb,1]*(wh/mwh))
+ ep=sp+max((wh*(wh/mwh)),4)
+ if (global.___sbdrag=sb && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+(sw*2)+wh)*(tp=0))+((yy+(sh*2)+wh)*(tp>0))) {
+ global.___sb[sb,1]+=(mwh/wh)*(((mouse_x*(tp=0))+(mouse_y*(tp>0)))-((global.___mxprev*(tp=0))+(global.___myprev*(tp>0))))
+ global.___mxprev=mouse_x
+ global.___myprev=mouse_y
+ }
+ if (global.___sbcurrent=sb && global.___sb[sb,3]>0) {
+ global.___sb[sb,1]+=((-1*mouse_wheel_up())+(1*mouse_wheel_down()))*ceil((mwh/wh)*((ep-sp)/3))
+ }
+ sel=(global.___sbdrag=-1 && (mouse_x*(tp=0))+(mouse_y*(tp>0))>=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && (mouse_x*(tp=0))+(mouse_y*(tp>0))0))>(yy*(tp=0))+(xx*(tp>0)) && (mouse_y*(tp=0))+(mouse_x*(tp>0))<((yy+sh)*(tp=0))+((xx+sh)*(tp>0)))
+ sel+=2*(global.___sbdrag=-1 && (mouse_x*(tp=0))+(mouse_y*(tp>0))>ep && (mouse_x*(tp=0))+(mouse_y*(tp>0))<((xx+sw+wh)*(tp=0))+((yy+sh+wh)*(tp>0)) && mouse_check_button(mb_left) && (mouse_y*(tp=0))+(mouse_x*(tp>0))>(yy*(tp=0))+(xx*(tp>0)) && (mouse_y*(tp=0))+(mouse_x*(tp>0))<((yy+sh)*(tp=0))+((xx+sh)*(tp>0)))
+ if (sel>0 && global.___sbtimer=0) {
+ global.___sb[sb,1]+=((-1*(sel=1))+(1*(sel=2)))*ceil((mwh/wh)*((ep-sp)))
+ global.___sb[sb,1]=max(0,min(mwh-((ep-sp)*(mwh/wh)),global.___sb[sb,1]))
+ global.___sbtimer=ceil(fps/(15-(12*mouse_check_button_pressed(mb_left))))
+ global.___sbcurrent=sb
+ }
+ global.___sb[sb,1]=min(mwh-((ep-sp)*(mwh/wh)),max(0,global.___sb[sb,1]))
+ sp=((xx+sw)*(tp=0))+((yy+sh)*(tp>0))+(global.___sb[sb,1]*(wh/mwh))
+ ep=sp+max((wh*(wh/mwh)),4)
+ for (a=floor(sp+1) a<=ceil(ep-2) a+=1) {
+ draw_sprite(spr,(13*(tp=0))+(17*(tp>0)),(a*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+(a*(tp>0)))
+ }
+ draw_sprite(spr,(12*(tp=0))+(16*(tp>0)),(floor(sp)*(tp=0))+(xx*(tp>0)),(floor(sp)*(tp>0))+(yy*(tp=0)))
+ draw_sprite(spr,(14*(tp=0))+(18*(tp>0)),((ceil(ep)-2)*(tp=0))+(xx*(tp>0)),((ceil(ep)-2)*(tp>0))+(yy*(tp=0)))
+ sel=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=sp && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button_pressed(mb_left))
+ if (sel=1 && global.___sbdrag=-1) {
+ global.___sbcurrent=sb
+ global.___sbdrag=sb
+ global.___mxprev=mouse_x
+ global.___myprev=mouse_y
+ }
+} else if (global.___sbdrag=sb) {
+ global.___sbdrag=-1
+}
+sel=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=(xx*(tp=0))+(yy*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button(mb_left) && global.___sbdrag=-1 && mwh>wh)
+sel2=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=((xx+wh+sw)*(tp=0))+((yy+wh+sh)*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+(sw*2)+wh)*(tp=0))+((yy+(sh*2)+wh)*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button(mb_left) && global.___sbdrag=-1 && mwh>wh)
+if (sel+sel2>0 && global.___sbtimer=0) {
+ global.___sb[sb,1]+=((-1*(sel=1))+(1*(sel2=1)))*ceil((mwh/wh)*((ep-sp)/3))
+ global.___sb[sb,1]=max(0,min(mwh-((ep-sp)*(mwh/wh)),global.___sb[sb,1]))
+ global.___sbtimer=ceil(fps/(15-(12*mouse_check_button_pressed(mb_left))))
+ global.___sbcurrent=sb
+}
+draw_sprite(spr,(0*(tp=0))+(6*(tp>0))+(sel>0 || mwh<=wh)+(mwh<=wh),xx,yy)
+draw_sprite(spr,(3*(tp=0))+(9*(tp>0))+(sel2>0 || mwh<=wh)+(mwh<=wh),((xx+wh+sw)*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+((yy+wh+sh)*(tp>0)))
diff --git a/src/Scripts/Scrollbars/scrollbar_draw_ext.gml b/src/Scripts/Scrollbars/scrollbar_draw_ext.gml
new file mode 100644
index 0000000..2cd6a78
--- /dev/null
+++ b/src/Scripts/Scrollbars/scrollbar_draw_ext.gml
@@ -0,0 +1,89 @@
+/*
+
+ CALL: scrollbar_draw_ext(id,x,y,slotw/h,slots,maxslots)
+
+ INFO: Draws the selected scrollbar. The value is measured in slots.
+
+ ARGUMENTS: id = The ID of the scrollbar to draw.
+ x = The x starting position of the scrollbar.
+ y = The y starting position of the scrollbar.
+ slotw/h = The width or height of a slot.
+ slots = The number of slots to show.
+ maxslots = The maximum number of slots.
+
+ WRITTEN BY: Davve
+
+*/
+var sb,xx,yy,swh,s,ms,wh,mwh,spr,sw,sh,sel,sel2,a,sp,ep,tp;
+sb=argument0
+xx=argument1
+yy=argument2
+swh=argument3
+s=argument4
+ms=argument5
+wh=s*swh
+mwh=ms*swh
+spr=global.___sb[sb,2]
+sw=sprite_get_width(spr)
+sh=sprite_get_height(spr)
+tp=global.___sb[sb,0]
+
+if (global.___sbcurrent=sb) {
+ global.___sbtimer=max(0,(global.___sbtimer-1)*mouse_check_button(mb_left))
+}
+for (a=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) a<((xx+wh+sw)*(tp=0))+((yy+wh+sh)*(tp>0)) a+=2) {
+ draw_sprite(spr,(15*(tp=0))+(19*(tp>0)),(a*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+(a*(tp>0)))
+}
+if (!mouse_check_button(mb_left) && global.___sbdrag>-1) {
+ global.___sbdrag=-1
+}
+if (mwh>wh && wh>0) {
+ sp=(((xx+sw)*(tp=0))+((yy+sh)*(tp>0)))+(global.___sb[sb,1]*((s/ms)*swh))
+ ep=sp+max((wh*(wh/mwh)),4)
+ if (global.___sbdrag=sb && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+(sw*2)+wh)*(tp=0))+((yy+(sh*2)+wh)*(tp>0))) {
+ global.___sb[sb,1]+=((((mouse_x*(tp=0))+(mouse_y*(tp>0)))-((global.___mxprev*(tp=0))+(global.___myprev*(tp>0)))))/(wh/ms)
+ global.___mxprev=mouse_x
+ global.___myprev=mouse_y
+ }
+ if (global.___sbcurrent=sb && global.___sb[sb,3]>0) {
+ global.___sb[sb,1]+=((-1*mouse_wheel_up())+(1*mouse_wheel_down()))
+ }
+ sel=(global.___sbdrag=-1 && (mouse_x*(tp=0))+(mouse_y*(tp>0))>=((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && (mouse_x*(tp=0))+(mouse_y*(tp>0))0))>(yy*(tp=0))+(xx*(tp>0)) && (mouse_y*(tp=0))+(mouse_x*(tp>0))<((yy+sh)*(tp=0))+((xx+sh)*(tp>0)))
+ sel+=2*(global.___sbdrag=-1 && (mouse_x*(tp=0))+(mouse_y*(tp>0))>ep && (mouse_x*(tp=0))+(mouse_y*(tp>0))<((xx+sw+wh)*(tp=0))+((yy+sh+wh)*(tp>0)) && mouse_check_button(mb_left) && (mouse_y*(tp=0))+(mouse_x*(tp>0))>(yy*(tp=0))+(xx*(tp>0)) && (mouse_y*(tp=0))+(mouse_x*(tp>0))<((yy+sh)*(tp=0))+((xx+sh)*(tp>0)))
+ if (sel>0 && global.___sbtimer=0) {
+ global.___sb[sb,1]+=(-1*(sel=1))+(1*(sel=2))
+ global.___sb[sb,1]=max(0,min(ms-s,global.___sb[sb,1]))
+ global.___sbtimer=ceil(fps/(15-(12*mouse_check_button_pressed(mb_left))))
+ global.___sbcurrent=sb
+ }
+ global.___sb[sb,1]=min(ms-s,max(0,global.___sb[sb,1]))
+ if (global.___sbdrag<>sb) {
+ global.___sb[sb,1]=round(global.___sb[sb,1])
+ }
+ sp=(((xx+sw)*(tp=0))+((yy+sh)*(tp>0)))+(global.___sb[sb,1]*((s/ms)*swh))
+ ep=sp+max((wh*(wh/mwh)),4)
+ for (a=floor(sp+1) a<=ceil(ep-2) a+=1) {
+ draw_sprite(spr,(13*(tp=0))+(17*(tp>0)),(a*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+(a*(tp>0)))
+ }
+ draw_sprite(spr,(12*(tp=0))+(16*(tp>0)),(floor(sp)*(tp=0))+(xx*(tp>0)),(floor(sp)*(tp>0))+(yy*(tp=0)))
+ draw_sprite(spr,(14*(tp=0))+(18*(tp>0)),((ceil(ep)-2)*(tp=0))+(xx*(tp>0)),((ceil(ep)-2)*(tp>0))+(yy*(tp=0)))
+ sel=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=sp && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button_pressed(mb_left))
+ if (sel=1 && global.___sbdrag=-1) {
+ global.___sbcurrent=sb
+ global.___sbdrag=sb
+ global.___mxprev=mouse_x
+ global.___myprev=mouse_y
+ }
+} else if (global.___sbdrag=sb) {
+ global.___sbdrag=-1
+}
+sel=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=(xx*(tp=0))+(yy*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+sw)*(tp=0))+((yy+sh)*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button(mb_left) && global.___sbdrag=-1 && mwh>wh)
+sel2=(((mouse_x*(tp=0))+(mouse_y*(tp>0)))>=((xx+wh+sw)*(tp=0))+((yy+wh+sh)*(tp>0)) && ((mouse_x*(tp=0))+(mouse_y*(tp>0)))<((xx+(sw*2)+wh)*(tp=0))+((yy+(sh*2)+wh)*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))>=(yy*(tp=0))+(xx*(tp>0)) && ((mouse_y*(tp=0))+(mouse_x*(tp>0)))<((yy+sh)*(tp=0))+((xx+sw)*(tp>0)) && mouse_check_button(mb_left) && global.___sbdrag=-1 && mwh>wh)
+if (sel+sel2>0 && global.___sbtimer=0) {
+ global.___sb[sb,1]+=(-1*(sel=1))+(1*(sel2=1))
+ global.___sb[sb,1]=max(0,min(ms-s,global.___sb[sb,1]))
+ global.___sbtimer=ceil(fps/(15-(12*mouse_check_button_pressed(mb_left))))
+ global.___sbcurrent=sb
+}
+draw_sprite(spr,(0*(tp=0))+(6*(tp>0))+(sel>0 || mwh<=wh)+(mwh<=wh),xx,yy)
+draw_sprite(spr,(3*(tp=0))+(9*(tp>0))+(sel2>0 || mwh<=wh)+(mwh<=wh),((xx+wh+sw)*(tp=0))+(xx*(tp>0)),(yy*(tp=0))+((yy+wh+sh)*(tp>0)))
diff --git a/src/Scripts/Textbox/_resources.list.xml b/src/Scripts/Textbox/_resources.list.xml
new file mode 100644
index 0000000..dc345de
--- /dev/null
+++ b/src/Scripts/Textbox/_resources.list.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/Scripts/Textbox/log_draw.gml b/src/Scripts/Textbox/log_draw.gml
new file mode 100644
index 0000000..426a932
--- /dev/null
+++ b/src/Scripts/Textbox/log_draw.gml
@@ -0,0 +1,22 @@
+// log_draw(x, y, startline, numlines)
+//
+// log_x - X position on screen
+// log_y - Y position on screen
+// startline - First line to draw
+// numlines - Number of lines of the log to draw
+
+var log_x, log_y, startline, numlines;
+
+log_x=argument0;
+log_y=argument1;
+startline=argument2;
+numlines=argument3;
+
+draw_set_color(c_black);
+draw_rectangle(0,0,room_width,room_height,0);
+draw_set_color($00FF00);
+
+draw_text(log_x,log_y+(numlines*string_height("A"))-((get_scrollbarvalue(chatScrollbar)+1)*string_height("A")),chatLog);
+
+if background_exists(pseudoSurface){background_delete(pseudoSurface)}
+pseudoSurface=background_create_from_screen(0,0,room_width,room_height,false,false);
diff --git a/src/Scripts/Textbox/log_update.gml b/src/Scripts/Textbox/log_update.gml
new file mode 100644
index 0000000..66d7e29
--- /dev/null
+++ b/src/Scripts/Textbox/log_update.gml
@@ -0,0 +1,52 @@
+// log_update(str,width)
+//
+// str - string to append to the log
+// width - width of area (in pixels) log will be displayed
+
+var str, logw, i, loop;
+
+str=argument0;
+logw=argument1;
+loop=true;
+
+while (loop){
+ if(string_width(str)>logw){
+ // The string is too long to be displayed on one line.
+
+ if(string_pos(" ",str)&&(string_width(string_copy(str,1,string_pos(" ",str)))-1) color_selected=i.color_selected
+ if (i.color_selection>-1) color_selection=i.color_selection
+
+ if (i.last_text!=i.text) {
+ str=i.text
+ str=string_replace_all(str,chr(13)+chr(10),chr(10))
+ str=string_replace_all(str,chr(13),chr(10))
+ if (i.max_chars>0) str=string_copy(str,1,i.max_chars)
+ if (i.single_line) str=string_replace_all(str,chr(10)," ")
+ i.text=str
+ str+=chr(10)
+ i.lines=0
+ while (str!="") {
+ i.line[i.lines]=string_copy(str,1,string_pos(chr(10),str)-1)
+ i.line_wrap[i.lines]=0
+ i.line_single[i.lines]=0
+ i.lines+=1
+ str=string_delete(str,1,string_pos(chr(10),str))
+ }
+ changetext=1
+ } else changetext=0
+
+ deletetext=0
+ inserttext=""
+ lineheight=string_height(" ")
+ mouseover=(mouse_x>=xx && mouse_x=yy && mouse_y30) {
+ key_press[keys[k]]=1
+ textbox_key_delay[k]=current_time+500*keyboard_check_pressed(keys[k]) // 500 msec if first press, otherwise 30
+ }
+ } else textbox_key_delay[k]=0
+ }
+
+ if (mouse_check_button_pressed(mb_left) && !keyboard_check(vk_shift)) textbox_focus=-1
+ if (!i.read_only && textbox_select=-1) {
+ deletetext=key_press[vk_backspace]-key_press[vk_delete] // 0=Do nothing, 1=Erase to left, -1=Erase to right, 2=Delete selected
+ inserttext=keyboard_string
+ }
+ keyboard_string=""
+
+ //Controls
+ if (!i.single_line) {
+ i.start+=mouse_wheel_down()-mouse_wheel_up() // Mousewheel to scroll
+ if (key_press[vk_enter] && !i.read_only) inserttext=chr(10) // Enter for linebreak
+ }
+ if (key_press[vk_right] || key_press[vk_left] || (key_press[vk_up] && textbox_select_mouseline>0) || (key_press[vk_down] && textbox_select_mouselinestring_length(i.line[textbox_select_mouseline])) { // Check if beyond end of line
+ if (textbox_select_mouseline0) {
+ textbox_select_mouseline-=1
+ textbox_select_mousepos=string_length(i.line[textbox_select_mouseline])
+ } else textbox_select_mousepos+=1
+ }
+ }
+ if (!i.single_line && (key_press[vk_up] || key_press[vk_down])) { // Move marker up/down
+ var currentx,nextx;
+ currentx=string_width(string_replace_all(string_copy(i.line[textbox_select_mouseline],1,textbox_select_mousepos),"#","\#"))
+ nextx=0
+ textbox_select_mouseline+=key_press[vk_down]-key_press[vk_up]
+ for (textbox_select_mousepos=0 textbox_select_mousepos<=string_length(i.line[textbox_select_mouseline]) textbox_select_mousepos+=1) { // Find correct position
+ nextx+=string_width(string_replace(string_char_at(i.line[textbox_select_mouseline],textbox_select_mousepos),"#","\#"))
+ if (nextx>currentx) break
+ }
+ }
+ if (!keyboard_check(vk_shift)) {
+ textbox_select_clickline=textbox_select_mouseline
+ textbox_select_clickpos=textbox_select_mousepos
+ }
+ textbox_select_startline=textbox_select_mouseline textbox_select_startpos=textbox_select_mousepos
+ textbox_select_endline=textbox_select_mouseline textbox_select_endpos=textbox_select_mousepos
+ textbox_marker=current_time
+ }
+
+ action=-1
+ if (mouse_check_button_pressed(mb_right) && mouseover && textbox_select=-1) { //Right-click menu
+ if (i.read_only) {
+ action=show_menu("Copy|-|Select all",-1)
+ if (action=1) action=4
+ if (action=0) action=1
+ } else action=show_menu("Cut|Copy|Paste|Delete|-|Select all",-1)
+ }
+ if (keyboard_check(vk_control) && textbox_select=-1) { // Ctrl commands
+ if (!i.read_only && keyboard_check_pressed(ord("X"))) action=0
+ if (keyboard_check_pressed(ord("C"))) action=1
+ if (!i.read_only && key_press[ord("V")]) action=2
+ if (keyboard_check_pressed(ord("A"))) action=4
+ }
+ switch (action) {
+ case 0: case 1: { // Cut/Copy text
+ str=""
+ if (textbox_select_startline=textbox_select_endline) { // Get text on single line
+ str=string_copy(i.line[textbox_select_startline],textbox_select_startpos+1,textbox_select_endpos-textbox_select_startpos)
+ } else {
+ for (l=textbox_select_startline l<=textbox_select_endline l+=1) { // Get selected text
+ if (l=textbox_select_startline) str+=string_delete(i.line[l],1,textbox_select_startpos)
+ else if (l=textbox_select_endline) str+=string_copy(i.line[l],1,textbox_select_endpos)
+ else str+=i.line[l]
+ if (l0)
+ }
+ inserttext=str
+ }
+
+ // Delete
+ if (deletetext!=0 || inserttext!="") {
+ // Get real position in total string for mouse/start/end
+ realmousepos=textbox_select_mousepos
+ realstartpos=textbox_select_startpos
+ realendpos=textbox_select_endpos
+ for (l=0 l0) { // In middle of line, just do string_delete
+ i.line[textbox_select_startline]=string_delete(i.line[textbox_select_startline],textbox_select_startpos,1)
+ textbox_select_startpos-=1
+ i.text=string_delete(i.text,realstartpos,1)
+ } else if (textbox_select_startline>0) { // Else, move up
+ textbox_select_startline-=1
+ textbox_select_startpos=string_length(i.line[textbox_select_startline])
+ if (i.line_wrap[textbox_select_startline+1]) { // If wrapped, delete, otherwise just jump up
+ textbox_select_startpos-=1
+ i.line[textbox_select_startline]=string_copy(i.line[textbox_select_startline],1,textbox_select_startpos)
+ }
+ i.line[textbox_select_startline]=i.line[textbox_select_startline]+i.line[textbox_select_startline+1]
+ i.lines-=1
+ for (l=textbox_select_startline+1 l0) { // Check max limit
+ var maxlen;
+ maxlen=i.max_chars-string_length(i.text);
+ if (string_length(inserttext)>maxlen) inserttext=string_copy(inserttext,1,maxlen)
+ }
+ if (inserttext!="") {
+ textbox_marker=current_time
+ if (i.single_line) inserttext=string_replace_all(inserttext,chr(10)," ")
+ i.text=string_copy(i.text,1,realmousepos)+inserttext+string_delete(i.text,1,realmousepos)
+
+ if (string_pos(chr(10),inserttext)>0) { // Add text with multiple lines (Paste or linebreak)
+ inserttext+=chr(10)
+ a=i.line[textbox_select_mouseline]
+ b=-1
+ while (inserttext!="") { // Parse
+ b+=1
+ str[b]=string_copy(inserttext,1,string_pos(chr(10),inserttext)-1)
+ if (i.replace_char!="") str[b]=string_repeat(i.replace_char,string_length(str[b]))
+ inserttext=string_delete(inserttext,1,string_pos(chr(10),inserttext))
+ }
+ i.lines+=b
+ for (l=i.lines-1 l>=textbox_select_mouseline+b l-=1) { //Push up
+ i.line[l]=i.line[l-b]
+ i.line_wrap[l]=i.line_wrap[l-b]
+ i.line_single[l]=i.line_single[l-b]
+ }
+ for (l=0 l<=b l+=1) { // Insert
+ if (l=0) {
+ i.line[textbox_select_mouseline+l]=string_copy(a,1,textbox_select_mousepos)+str[l] // First
+ i.line_single[textbox_select_mouseline+l]=false
+ } else if (l=b) {
+ i.line[textbox_select_mouseline+l]=str[l]+string_delete(a,1,textbox_select_mousepos) // Last
+ i.line_wrap[textbox_select_mouseline+l]=false
+ } else i.line[textbox_select_mouseline+l]=str[l] // Middle
+ }
+ textbox_select_mouseline+=b
+ textbox_select_mousepos=string_length(str[b])
+ inserttext=" "
+ } else { // Simple insert
+ if (i.replace_char!="") inserttext=string_repeat(i.replace_char,string_length(inserttext))
+ // Apparently, string_insert doesn't support å,ä,ö,é,è,í etc.
+ i.line[textbox_select_startline]=string_copy(i.line[textbox_select_startline],1,textbox_select_mousepos)+inserttext+string_delete(i.line[textbox_select_startline],1,textbox_select_mousepos)
+ textbox_select_mousepos+=string_length(inserttext)
+ }
+ textbox_select_clickline=textbox_select_mouseline textbox_select_clickpos=textbox_select_mousepos
+ textbox_select_startline=textbox_select_mouseline textbox_select_startpos=textbox_select_mousepos
+ textbox_select_endline=textbox_select_mouseline textbox_select_endpos=textbox_select_mousepos
+ }
+
+ // Move screen if text is edited or marker is moved
+ if (inserttext!="" || deletetext!=0 || key_press[vk_left] || key_press[vk_right] || key_press[vk_up] || key_press[vk_down]) {
+ if (i.single_line) {
+ if (textbox_select_mouseposi.start+i.chars-1) i.start=textbox_select_mousepos-i.chars // Move screen right
+ } else {
+ if (textbox_select_mouseline=i.start+floor(h/lineheight)) i.start=textbox_select_mouseline-floor(h/lineheight)+1 // Move screen down
+ }
+ }
+
+ // Handle selecting
+ if (!mouse_check_button(mb_left)) textbox_select=-1
+ if (textbox_select=i) { // Move up/down if dragging outside of box
+ textbox_marker=current_time
+ if (i.single_line) {
+ if (mouse_xxx+w) i.start+=1
+ } else {
+ if (mouse_yyy+h) i.start+=1
+ }
+ }
+ if (textbox_click>0) {
+ if (textbox_select_mouseline=textbox_select_clickline) {
+ textbox_select_startline=textbox_select_mouseline
+ textbox_select_endline=textbox_select_mouseline
+ if (textbox_select_mousepos>=textbox_select_clickpos) {
+ textbox_select_startpos=textbox_select_clickpos
+ textbox_select_endpos=textbox_select_mousepos
+ } else {
+ textbox_select_startpos=textbox_select_mousepos
+ textbox_select_endpos=textbox_select_clickpos
+ }
+ }
+ if (textbox_select_mouseline>textbox_select_clickline) {
+ textbox_select_startline=textbox_select_clickline
+ textbox_select_startpos=textbox_select_clickpos
+ textbox_select_endline=textbox_select_mouseline
+ textbox_select_endpos=textbox_select_mousepos
+ }
+ if (textbox_select_mouseline=0 a-=1) {
+ ww+=string_width(string_replace(string_char_at(i.line[0],a),"#","\#"))
+ b=a
+ if (ww>w) break
+ }
+ i.start=min(b,i.start)
+ // Calculate visible
+ ww=0
+ i.chars=0
+ for (a=i.start+1 a<=string_length(i.line[0]) a+=1) {
+ ww+=string_width(string_replace(string_char_at(i.line[0],a),"#","\#"))
+ if (ww>w) break
+ i.chars+=1
+ }
+ } else { // Wordwrapping
+ if (changetext || i.last_width!=w || inserttext!="" || deletetext!=0) { // Detect box width or line length changes.
+ for (l=1 lw) continue
+ if (i.line_single[l-1]) { // Single-worded line
+ for (p=1 p<=string_length(i.line[l]) p+=1) { // Try to add remaining letters
+ if (ww+string_width(string_replace_all(string_copy(i.line[l],1,p),"#","\#"))>w) break
+ a=string_char_at(i.line[l],p+1)
+ if (a=" " || a="-") {
+ p+=1
+ i.line_single[l-1]=false
+ break
+ }
+ if (p=string_length(i.line[l]) && !i.line_single[l]) i.line_single[l-1]=false
+ }
+ if (p=1) continue //Cannot move up
+ a=string_length(i.line[l-1]) // Move markers if affected
+ if (textbox_select_mouseline=l && textbox_select_mousepos<=p) {textbox_select_mouseline-=1 textbox_select_mousepos+=a}
+ if (textbox_select_clickline=l && textbox_select_clickpos<=p) {textbox_select_clickline-=1 textbox_select_clickpos+=a}
+ if (textbox_select_endline=l && textbox_select_endpos<=p) {textbox_select_endline-=1 textbox_select_endpos+=a}
+ if (textbox_select_startline=l && textbox_select_startpos<=p) {textbox_select_startline-=1 textbox_select_startpos+=a}
+ if (textbox_select_mouseline=l) textbox_select_mousepos-=p
+ if (textbox_select_clickline=l) textbox_select_clickpos-=p
+ if (textbox_select_endline=l) textbox_select_endpos-=p
+ if (textbox_select_startline=l) textbox_select_startpos-=p
+ i.line[l-1]+=string_copy(i.line[l],1,p)
+ i.line[l]=string_delete(i.line[l],1,p)
+ }
+ while (i.line[l]!="") { // Try to add words
+ p=string_pos(" ",i.line[l])
+ if (p=0) p=string_pos("-",i.line[l])
+ if (p=0) p=string_length(i.line[l])
+ if (ww+string_width(string_replace_all(string_copy(i.line[l],1,p-1),"#","\#"))>w) break
+ a=string_length(i.line[l-1]) // Move markers if affected
+ if (textbox_select_mouseline=l && textbox_select_mousepos<=p) {textbox_select_mouseline-=1 textbox_select_mousepos+=a}
+ if (textbox_select_clickline=l && textbox_select_clickpos<=p) {textbox_select_clickline-=1 textbox_select_clickpos+=a}
+ if (textbox_select_endline=l && textbox_select_endpos<=p) {textbox_select_endline-=1 textbox_select_endpos+=a}
+ if (textbox_select_startline=l && textbox_select_startpos<=p) {textbox_select_startline-=1 textbox_select_startpos+=a}
+ if (textbox_select_mouseline=l) textbox_select_mousepos-=p
+ if (textbox_select_clickline=l) textbox_select_clickpos-=p
+ if (textbox_select_endline=l) textbox_select_endpos-=p
+ if (textbox_select_startline=l) textbox_select_startpos-=p
+ i.line[l-1]+=string_copy(i.line[l],1,p)
+ i.line[l]=string_delete(i.line[l],1,p)
+ }
+
+ if (i.line[l]="") { // Remove empty line
+ i.lines-=1
+ for (a=l aw) {
+ i.line_single[l]=false
+ for (p=string_length(i.line[l]) p>1 p-=1) { // Look for words
+ a=string_char_at(i.line[l],p)
+ if (a=" " || a="-") {
+ if (string_width(string_replace_all(string_copy(i.line[l],1,p-1),"#","\#"))1 p-=1) {
+ if (string_width(string_replace_all(string_copy(i.line[l],1,p),"#","\#"))l b-=1) { // Push
+ i.line[b]=i.line[b-1]
+ i.line_wrap[b]=i.line_wrap[b-1]
+ i.line_single[b]=i.line_single[b-1]
+ if (textbox_select_mouseline=b) textbox_select_mouseline+=1 //Move markers if affected
+ if (textbox_select_clickline=b) textbox_select_clickline+=1
+ if (textbox_select_endline=b) textbox_select_endline+=1
+ if (textbox_select_startline=b) textbox_select_startline+=1
+ }
+ i.lines+=1
+ i.line[l+1]=string_delete(i.line[l],1,p)
+ i.line_wrap[l+1]=true
+ i.line_single[l+1]=false
+ } else {
+ i.line[l+1]=string_delete(i.line[l],1,p)+i.line[l+1] // Add to existing
+ }
+ // Move markers if affected
+ a=string_length(i.line[l])-p
+ if (textbox_select_mouseline=l+1) textbox_select_mousepos+=a
+ if (textbox_select_clickline=l+1) textbox_select_clickpos+=a
+ if (textbox_select_endline=l+1) textbox_select_endpos+=a
+ if (textbox_select_startline=l+1) textbox_select_startpos+=a
+ if (textbox_select_mouseline=l && textbox_select_mousepos>=p) {textbox_select_mouseline+=1 textbox_select_mousepos-=p}
+ if (textbox_select_clickline=l && textbox_select_clickpos>=p) {textbox_select_clickline+=1 textbox_select_clickpos-=p}
+ if (textbox_select_endline=l && textbox_select_endpos>=p) {textbox_select_endline+=1 textbox_select_endpos-=p}
+ if (textbox_select_startline=l && textbox_select_startpos>=p) {textbox_select_startline+=1 textbox_select_startpos-=p}
+ i.line[l]=string_copy(i.line[l],1,p)
+ }
+ }
+ if (textbox_select_mouseline=i.start+floor(h/lineheight)) i.start=textbox_select_mouseline-floor(h/lineheight)+1 // Move screen down
+ }
+ i.start=max(0,min(i.start,i.lines-floor(h/lineheight)))
+ }
+
+ //Draw text and selection
+ draw_set_halign(fa_left)
+ draw_set_valign(fa_top)
+ for (l=i.start*!i.single_line lh) break // Exit if beyond box
+ if ((mouseover && textbox_select=-1) || textbox_select=i) {
+ if (l=i.lines-1) hh=h-ly
+ else hh=lineheight
+ if ((mouse_x>=xx || textbox_select=i) &&
+ (mouse_x=yy+ly || (textbox_select=i && ly=0)) &&
+ (mouse_yh || l=i.lines-1)))) { // Cursor is inside line
+ if (mouse_check_button(mb_left)) {
+ if (i.select_on_focus && textbox_lastfocus!=i) { // Select all
+ textbox_select_startline=0 textbox_select_startpos=0
+ textbox_select_endline=i.lines-1 textbox_select_endpos=string_length(i.line[textbox_select_endline])
+ textbox_select_mouseline=textbox_select_endline textbox_select_mousepos=textbox_select_endpos
+ textbox_select_clickline=0 textbox_select_clickpos=0
+ textbox_marker=current_time
+ textbox_focus=i
+ keyboard_string=""
+ mouse_clear(mb_left)
+ } else {
+ textbox_select=i
+ ww=0
+ for (a=i.start*i.single_line a=string_length(i.line[textbox_select_endline])) {
+ if (textbox_select_endline=i.lines-1) break
+ if (!i.line_single[textbox_select_endline]) break
+ textbox_select_endline+=1
+ textbox_select_endpos=0
+ }
+ if (textbox_select_endpos>=string_length(i.line[textbox_select_endline])) break
+ }
+ textbox_select_mouseline=textbox_select_endline
+ textbox_select_mousepos=textbox_select_endpos
+ textbox_click=0
+ mouse_clear(mb_left)
+ } else { // Remove selection if clicking after word select
+ textbox_click=current_time
+ textbox_select_startline=textbox_select_mouseline textbox_select_startpos=textbox_select_mousepos
+ textbox_select_endline=textbox_select_mouseline textbox_select_endpos=textbox_select_mousepos
+ }
+ } else {
+ textbox_click=current_time
+ if (!keyboard_check(vk_shift) || textbox_lastfocus!=i) { // Drag selection if shift is held
+ textbox_select_startline=textbox_select_mouseline textbox_select_startpos=textbox_select_mousepos
+ textbox_select_endline=textbox_select_mouseline textbox_select_endpos=textbox_select_mousepos
+ textbox_select_clickline=textbox_select_mouseline textbox_select_clickpos=textbox_select_mousepos
+ }
+ }
+ textbox_marker=current_time
+ textbox_focus=i
+ keyboard_string=""
+ textbox_lastfocus=i
+ }
+ }
+ }
+ }
+ }
+ if (i.single_line) {
+ if (textbox_focus=i && textbox_select_startpos!=textbox_select_endpos) {
+ for (a=0 a<3 a+=1) str[a]=""
+ if (textbox_select_endposi.start+1+i.chars) str[0]=string_copy(i.line[0],i.start+1,i.chars) // Selection is outside
+ else if (textbox_select_startpos<=i.start && textbox_select_endpos>i.start+i.chars) str[1]=string_copy(i.line[0],i.start+1,i.chars) // All visible is selected
+ else if (textbox_select_startpos>i.start && textbox_select_endposl) { // Between
+ str[1]=i.line[l]
+ } else { // Outside
+ str[0]=i.line[l]
+ }
+ for (a=0 a<3 a+=1) str[a]=string_replace_all(str[a],"#","\#")
+ if (str[0]!="") { // Text before or outside selection
+ draw_set_color(color_normal)
+ draw_text(xx,yy+ly,str[0])
+ }
+ if (str[1]!="") { // Selected text
+ draw_set_color(color_selection)
+ draw_rectangle(min(xx+w,xx+string_width(str[0])),yy+ly,min(xx+w,xx+string_width(str[0]+str[1])),yy+ly+lineheight-1,0)
+ draw_set_color(color_selected)
+ draw_text(xx+string_width(str[0]),yy+ly,str[1])
+ }
+ if (str[2]!="") { // Text after selection
+ draw_set_color(color_normal)
+ draw_text(xx+string_width(str[0]+str[1]),yy+ly,str[2])
+ }
+ } else { // Unselected line
+ draw_set_color(color_normal)
+ draw_text(xx,yy+ly,string_replace_all(i.line[l],"#","\#"))
+ }
+ }
+ }
+
+ // Marker
+ if (textbox_focus=i && !i.read_only) {
+ a=string_width(string_replace_all(string_copy(i.line[textbox_select_mouseline],1,textbox_select_mousepos),"#","\#"))
+ b=(textbox_select_mouseline-i.start)*lineheight
+ if (i.single_line) {
+ a-=string_width(string_replace_all(string_copy(i.line[textbox_select_mouseline],1,i.start),"#","\#"))
+ b=0
+ }
+ if (a>=0 && a<=w && b>=0 && b+lineheight<=h && (current_time-textbox_marker) mod 1000<500) {
+ draw_set_color(color_marker)
+ draw_line(xx+a+1,yy+b-1,xx+a+1,yy+b+lineheight-1)
+ }
+ }
+
+ if (textbox_focus=i) textbox_lastfocus=i
+ else if (textbox_focus=-1) textbox_lastfocus=-1
+
+ // Set cursor
+ if (mouseover || textbox_select=i) {
+ textbox_mouseover=i
+ window_set_cursor(cr_beam)
+ } else if (textbox_mouseover=i) {
+ textbox_mouseover=-1
+ window_set_cursor(cr_default)
+ }
+ i.last_text=i.text
+ i.last_width=w
+
+ draw_set_color(color_normal)
+ return i.text
+}
diff --git a/src/Scripts/_resources.list.xml b/src/Scripts/_resources.list.xml
new file mode 100644
index 0000000..592b4e2
--- /dev/null
+++ b/src/Scripts/_resources.list.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/Sounds/_resources.list.xml b/src/Sounds/_resources.list.xml
new file mode 100644
index 0000000..70032a2
--- /dev/null
+++ b/src/Sounds/_resources.list.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/Sprites/Fonts/_resources.list.xml b/src/Sprites/Fonts/_resources.list.xml
new file mode 100644
index 0000000..5bf24bb
--- /dev/null
+++ b/src/Sprites/Fonts/_resources.list.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 0.png b/src/Sprites/Fonts/sprCyberspace.images/image 0.png
new file mode 100644
index 0000000..18657fc
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 0.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 1.png b/src/Sprites/Fonts/sprCyberspace.images/image 1.png
new file mode 100644
index 0000000..73b05fc
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 1.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 10.png b/src/Sprites/Fonts/sprCyberspace.images/image 10.png
new file mode 100644
index 0000000..d865724
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 10.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 11.png b/src/Sprites/Fonts/sprCyberspace.images/image 11.png
new file mode 100644
index 0000000..bd08dc0
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 11.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 12.png b/src/Sprites/Fonts/sprCyberspace.images/image 12.png
new file mode 100644
index 0000000..cf8cf09
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 12.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 13.png b/src/Sprites/Fonts/sprCyberspace.images/image 13.png
new file mode 100644
index 0000000..ab2c6ae
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 13.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 14.png b/src/Sprites/Fonts/sprCyberspace.images/image 14.png
new file mode 100644
index 0000000..3c4afa5
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 14.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 15.png b/src/Sprites/Fonts/sprCyberspace.images/image 15.png
new file mode 100644
index 0000000..b362901
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 15.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 16.png b/src/Sprites/Fonts/sprCyberspace.images/image 16.png
new file mode 100644
index 0000000..3ae51d3
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 16.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 17.png b/src/Sprites/Fonts/sprCyberspace.images/image 17.png
new file mode 100644
index 0000000..d7b38a7
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 17.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 18.png b/src/Sprites/Fonts/sprCyberspace.images/image 18.png
new file mode 100644
index 0000000..7e562b2
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 18.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 19.png b/src/Sprites/Fonts/sprCyberspace.images/image 19.png
new file mode 100644
index 0000000..116ded9
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 19.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 2.png b/src/Sprites/Fonts/sprCyberspace.images/image 2.png
new file mode 100644
index 0000000..8812a24
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 2.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 20.png b/src/Sprites/Fonts/sprCyberspace.images/image 20.png
new file mode 100644
index 0000000..35a7718
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 20.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 21.png b/src/Sprites/Fonts/sprCyberspace.images/image 21.png
new file mode 100644
index 0000000..a7bb9cc
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 21.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 22.png b/src/Sprites/Fonts/sprCyberspace.images/image 22.png
new file mode 100644
index 0000000..b97f9b9
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 22.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 23.png b/src/Sprites/Fonts/sprCyberspace.images/image 23.png
new file mode 100644
index 0000000..70b8d39
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 23.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 24.png b/src/Sprites/Fonts/sprCyberspace.images/image 24.png
new file mode 100644
index 0000000..c2b278c
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 24.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 25.png b/src/Sprites/Fonts/sprCyberspace.images/image 25.png
new file mode 100644
index 0000000..f6d6cf0
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 25.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 26.png b/src/Sprites/Fonts/sprCyberspace.images/image 26.png
new file mode 100644
index 0000000..1b3522c
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 26.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 27.png b/src/Sprites/Fonts/sprCyberspace.images/image 27.png
new file mode 100644
index 0000000..e989c94
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 27.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 28.png b/src/Sprites/Fonts/sprCyberspace.images/image 28.png
new file mode 100644
index 0000000..aa1438a
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 28.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 29.png b/src/Sprites/Fonts/sprCyberspace.images/image 29.png
new file mode 100644
index 0000000..ec24c17
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 29.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 3.png b/src/Sprites/Fonts/sprCyberspace.images/image 3.png
new file mode 100644
index 0000000..5c4db54
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 3.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 30.png b/src/Sprites/Fonts/sprCyberspace.images/image 30.png
new file mode 100644
index 0000000..011cc4a
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 30.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 31.png b/src/Sprites/Fonts/sprCyberspace.images/image 31.png
new file mode 100644
index 0000000..eb5efc7
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 31.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 32.png b/src/Sprites/Fonts/sprCyberspace.images/image 32.png
new file mode 100644
index 0000000..46a7ba6
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 32.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 33.png b/src/Sprites/Fonts/sprCyberspace.images/image 33.png
new file mode 100644
index 0000000..be92a4c
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 33.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 34.png b/src/Sprites/Fonts/sprCyberspace.images/image 34.png
new file mode 100644
index 0000000..c5ad4af
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 34.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 35.png b/src/Sprites/Fonts/sprCyberspace.images/image 35.png
new file mode 100644
index 0000000..bb2976f
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 35.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 36.png b/src/Sprites/Fonts/sprCyberspace.images/image 36.png
new file mode 100644
index 0000000..ba4b5e6
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 36.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 37.png b/src/Sprites/Fonts/sprCyberspace.images/image 37.png
new file mode 100644
index 0000000..f7a8673
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 37.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 38.png b/src/Sprites/Fonts/sprCyberspace.images/image 38.png
new file mode 100644
index 0000000..95568a1
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 38.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 39.png b/src/Sprites/Fonts/sprCyberspace.images/image 39.png
new file mode 100644
index 0000000..44d3b62
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 39.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 4.png b/src/Sprites/Fonts/sprCyberspace.images/image 4.png
new file mode 100644
index 0000000..d6cc0af
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 4.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 40.png b/src/Sprites/Fonts/sprCyberspace.images/image 40.png
new file mode 100644
index 0000000..222add3
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 40.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 41.png b/src/Sprites/Fonts/sprCyberspace.images/image 41.png
new file mode 100644
index 0000000..1f5743f
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 41.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 42.png b/src/Sprites/Fonts/sprCyberspace.images/image 42.png
new file mode 100644
index 0000000..2614ec6
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 42.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 43.png b/src/Sprites/Fonts/sprCyberspace.images/image 43.png
new file mode 100644
index 0000000..1f39d43
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 43.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 44.png b/src/Sprites/Fonts/sprCyberspace.images/image 44.png
new file mode 100644
index 0000000..3991d87
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 44.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 45.png b/src/Sprites/Fonts/sprCyberspace.images/image 45.png
new file mode 100644
index 0000000..72afc65
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 45.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 46.png b/src/Sprites/Fonts/sprCyberspace.images/image 46.png
new file mode 100644
index 0000000..30a384f
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 46.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 47.png b/src/Sprites/Fonts/sprCyberspace.images/image 47.png
new file mode 100644
index 0000000..564b607
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 47.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 48.png b/src/Sprites/Fonts/sprCyberspace.images/image 48.png
new file mode 100644
index 0000000..dc4ce52
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 48.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 49.png b/src/Sprites/Fonts/sprCyberspace.images/image 49.png
new file mode 100644
index 0000000..0913e77
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 49.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 5.png b/src/Sprites/Fonts/sprCyberspace.images/image 5.png
new file mode 100644
index 0000000..7ba9e06
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 5.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 50.png b/src/Sprites/Fonts/sprCyberspace.images/image 50.png
new file mode 100644
index 0000000..378bcdb
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 50.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 51.png b/src/Sprites/Fonts/sprCyberspace.images/image 51.png
new file mode 100644
index 0000000..fb169e9
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 51.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 52.png b/src/Sprites/Fonts/sprCyberspace.images/image 52.png
new file mode 100644
index 0000000..fed5d25
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 52.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 53.png b/src/Sprites/Fonts/sprCyberspace.images/image 53.png
new file mode 100644
index 0000000..9a6fe13
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 53.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 54.png b/src/Sprites/Fonts/sprCyberspace.images/image 54.png
new file mode 100644
index 0000000..bbb3a08
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 54.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 55.png b/src/Sprites/Fonts/sprCyberspace.images/image 55.png
new file mode 100644
index 0000000..504f051
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 55.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 56.png b/src/Sprites/Fonts/sprCyberspace.images/image 56.png
new file mode 100644
index 0000000..05be100
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 56.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 57.png b/src/Sprites/Fonts/sprCyberspace.images/image 57.png
new file mode 100644
index 0000000..54d812e
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 57.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 58.png b/src/Sprites/Fonts/sprCyberspace.images/image 58.png
new file mode 100644
index 0000000..666be2f
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 58.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 59.png b/src/Sprites/Fonts/sprCyberspace.images/image 59.png
new file mode 100644
index 0000000..f8a829b
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 59.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 6.png b/src/Sprites/Fonts/sprCyberspace.images/image 6.png
new file mode 100644
index 0000000..0357399
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 6.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 60.png b/src/Sprites/Fonts/sprCyberspace.images/image 60.png
new file mode 100644
index 0000000..1015f2e
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 60.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 61.png b/src/Sprites/Fonts/sprCyberspace.images/image 61.png
new file mode 100644
index 0000000..83d2f64
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 61.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 62.png b/src/Sprites/Fonts/sprCyberspace.images/image 62.png
new file mode 100644
index 0000000..97ba3be
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 62.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 63.png b/src/Sprites/Fonts/sprCyberspace.images/image 63.png
new file mode 100644
index 0000000..37ff5d9
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 63.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 64.png b/src/Sprites/Fonts/sprCyberspace.images/image 64.png
new file mode 100644
index 0000000..8f8a09e
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 64.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 65.png b/src/Sprites/Fonts/sprCyberspace.images/image 65.png
new file mode 100644
index 0000000..ac00ac4
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 65.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 66.png b/src/Sprites/Fonts/sprCyberspace.images/image 66.png
new file mode 100644
index 0000000..468956f
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 66.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 67.png b/src/Sprites/Fonts/sprCyberspace.images/image 67.png
new file mode 100644
index 0000000..9bdbb55
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 67.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 68.png b/src/Sprites/Fonts/sprCyberspace.images/image 68.png
new file mode 100644
index 0000000..02dafaf
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 68.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 69.png b/src/Sprites/Fonts/sprCyberspace.images/image 69.png
new file mode 100644
index 0000000..0fa007d
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 69.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 7.png b/src/Sprites/Fonts/sprCyberspace.images/image 7.png
new file mode 100644
index 0000000..923b206
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 7.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 70.png b/src/Sprites/Fonts/sprCyberspace.images/image 70.png
new file mode 100644
index 0000000..9a3fe15
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 70.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 71.png b/src/Sprites/Fonts/sprCyberspace.images/image 71.png
new file mode 100644
index 0000000..1f7082e
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 71.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 72.png b/src/Sprites/Fonts/sprCyberspace.images/image 72.png
new file mode 100644
index 0000000..5ae6877
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 72.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 73.png b/src/Sprites/Fonts/sprCyberspace.images/image 73.png
new file mode 100644
index 0000000..9e40b64
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 73.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 74.png b/src/Sprites/Fonts/sprCyberspace.images/image 74.png
new file mode 100644
index 0000000..5d2a720
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 74.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 75.png b/src/Sprites/Fonts/sprCyberspace.images/image 75.png
new file mode 100644
index 0000000..98f7a83
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 75.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 76.png b/src/Sprites/Fonts/sprCyberspace.images/image 76.png
new file mode 100644
index 0000000..a2624a5
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 76.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 77.png b/src/Sprites/Fonts/sprCyberspace.images/image 77.png
new file mode 100644
index 0000000..27c84a3
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 77.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 78.png b/src/Sprites/Fonts/sprCyberspace.images/image 78.png
new file mode 100644
index 0000000..cec3a61
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 78.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 79.png b/src/Sprites/Fonts/sprCyberspace.images/image 79.png
new file mode 100644
index 0000000..3ef4a77
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 79.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 8.png b/src/Sprites/Fonts/sprCyberspace.images/image 8.png
new file mode 100644
index 0000000..ac4a855
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 8.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 80.png b/src/Sprites/Fonts/sprCyberspace.images/image 80.png
new file mode 100644
index 0000000..df53925
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 80.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 81.png b/src/Sprites/Fonts/sprCyberspace.images/image 81.png
new file mode 100644
index 0000000..8be4425
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 81.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 82.png b/src/Sprites/Fonts/sprCyberspace.images/image 82.png
new file mode 100644
index 0000000..370793a
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 82.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 83.png b/src/Sprites/Fonts/sprCyberspace.images/image 83.png
new file mode 100644
index 0000000..c6aaf31
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 83.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 84.png b/src/Sprites/Fonts/sprCyberspace.images/image 84.png
new file mode 100644
index 0000000..4dc0dd6
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 84.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 85.png b/src/Sprites/Fonts/sprCyberspace.images/image 85.png
new file mode 100644
index 0000000..12794fd
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 85.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 86.png b/src/Sprites/Fonts/sprCyberspace.images/image 86.png
new file mode 100644
index 0000000..4537988
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 86.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 87.png b/src/Sprites/Fonts/sprCyberspace.images/image 87.png
new file mode 100644
index 0000000..8902570
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 87.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 88.png b/src/Sprites/Fonts/sprCyberspace.images/image 88.png
new file mode 100644
index 0000000..a36e31a
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 88.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 89.png b/src/Sprites/Fonts/sprCyberspace.images/image 89.png
new file mode 100644
index 0000000..7287b19
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 89.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 9.png b/src/Sprites/Fonts/sprCyberspace.images/image 9.png
new file mode 100644
index 0000000..d1b2f0a
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 9.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 90.png b/src/Sprites/Fonts/sprCyberspace.images/image 90.png
new file mode 100644
index 0000000..44a2ccd
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 90.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 91.png b/src/Sprites/Fonts/sprCyberspace.images/image 91.png
new file mode 100644
index 0000000..a875f0c
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 91.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 92.png b/src/Sprites/Fonts/sprCyberspace.images/image 92.png
new file mode 100644
index 0000000..4281742
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 92.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.images/image 93.png b/src/Sprites/Fonts/sprCyberspace.images/image 93.png
new file mode 100644
index 0000000..a5665ae
Binary files /dev/null and b/src/Sprites/Fonts/sprCyberspace.images/image 93.png differ
diff --git a/src/Sprites/Fonts/sprCyberspace.xml b/src/Sprites/Fonts/sprCyberspace.xml
new file mode 100644
index 0000000..c03ed78
--- /dev/null
+++ b/src/Sprites/Fonts/sprCyberspace.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ false
+ RECTANGLE
+
+
+ true
+ false
+ false
+
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 0.png b/src/Sprites/Fonts/sprGameSystem.images/image 0.png
new file mode 100644
index 0000000..1e2dc45
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 0.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 1.png b/src/Sprites/Fonts/sprGameSystem.images/image 1.png
new file mode 100644
index 0000000..522c237
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 1.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 10.png b/src/Sprites/Fonts/sprGameSystem.images/image 10.png
new file mode 100644
index 0000000..31e745f
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 10.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 11.png b/src/Sprites/Fonts/sprGameSystem.images/image 11.png
new file mode 100644
index 0000000..036e896
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 11.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 12.png b/src/Sprites/Fonts/sprGameSystem.images/image 12.png
new file mode 100644
index 0000000..3f265bd
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 12.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 13.png b/src/Sprites/Fonts/sprGameSystem.images/image 13.png
new file mode 100644
index 0000000..e197e23
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 13.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 14.png b/src/Sprites/Fonts/sprGameSystem.images/image 14.png
new file mode 100644
index 0000000..6b56ece
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 14.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 15.png b/src/Sprites/Fonts/sprGameSystem.images/image 15.png
new file mode 100644
index 0000000..64cfac7
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 15.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 16.png b/src/Sprites/Fonts/sprGameSystem.images/image 16.png
new file mode 100644
index 0000000..c182a4b
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 16.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 17.png b/src/Sprites/Fonts/sprGameSystem.images/image 17.png
new file mode 100644
index 0000000..b1548e1
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 17.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 18.png b/src/Sprites/Fonts/sprGameSystem.images/image 18.png
new file mode 100644
index 0000000..3cc052e
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 18.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 19.png b/src/Sprites/Fonts/sprGameSystem.images/image 19.png
new file mode 100644
index 0000000..a7a8c47
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 19.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 2.png b/src/Sprites/Fonts/sprGameSystem.images/image 2.png
new file mode 100644
index 0000000..ddf71af
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 2.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 20.png b/src/Sprites/Fonts/sprGameSystem.images/image 20.png
new file mode 100644
index 0000000..cd26753
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 20.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 21.png b/src/Sprites/Fonts/sprGameSystem.images/image 21.png
new file mode 100644
index 0000000..327177c
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 21.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 22.png b/src/Sprites/Fonts/sprGameSystem.images/image 22.png
new file mode 100644
index 0000000..4c54acc
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 22.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 23.png b/src/Sprites/Fonts/sprGameSystem.images/image 23.png
new file mode 100644
index 0000000..85bb228
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 23.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 24.png b/src/Sprites/Fonts/sprGameSystem.images/image 24.png
new file mode 100644
index 0000000..60ac8b8
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 24.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 25.png b/src/Sprites/Fonts/sprGameSystem.images/image 25.png
new file mode 100644
index 0000000..0b760d8
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 25.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 26.png b/src/Sprites/Fonts/sprGameSystem.images/image 26.png
new file mode 100644
index 0000000..d521a7a
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 26.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 27.png b/src/Sprites/Fonts/sprGameSystem.images/image 27.png
new file mode 100644
index 0000000..1e7b31a
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 27.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 28.png b/src/Sprites/Fonts/sprGameSystem.images/image 28.png
new file mode 100644
index 0000000..1e2c537
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 28.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 29.png b/src/Sprites/Fonts/sprGameSystem.images/image 29.png
new file mode 100644
index 0000000..31457da
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 29.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 3.png b/src/Sprites/Fonts/sprGameSystem.images/image 3.png
new file mode 100644
index 0000000..2b24689
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 3.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 30.png b/src/Sprites/Fonts/sprGameSystem.images/image 30.png
new file mode 100644
index 0000000..c08c043
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 30.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 31.png b/src/Sprites/Fonts/sprGameSystem.images/image 31.png
new file mode 100644
index 0000000..38a906c
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 31.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 32.png b/src/Sprites/Fonts/sprGameSystem.images/image 32.png
new file mode 100644
index 0000000..9beb0f8
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 32.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 33.png b/src/Sprites/Fonts/sprGameSystem.images/image 33.png
new file mode 100644
index 0000000..4a86235
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 33.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 34.png b/src/Sprites/Fonts/sprGameSystem.images/image 34.png
new file mode 100644
index 0000000..8b5659e
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 34.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 35.png b/src/Sprites/Fonts/sprGameSystem.images/image 35.png
new file mode 100644
index 0000000..b9dfb12
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 35.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 36.png b/src/Sprites/Fonts/sprGameSystem.images/image 36.png
new file mode 100644
index 0000000..11edfcd
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 36.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 37.png b/src/Sprites/Fonts/sprGameSystem.images/image 37.png
new file mode 100644
index 0000000..98f3d22
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 37.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 38.png b/src/Sprites/Fonts/sprGameSystem.images/image 38.png
new file mode 100644
index 0000000..4c245ed
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 38.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 39.png b/src/Sprites/Fonts/sprGameSystem.images/image 39.png
new file mode 100644
index 0000000..171b88d
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 39.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 4.png b/src/Sprites/Fonts/sprGameSystem.images/image 4.png
new file mode 100644
index 0000000..0d37261
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 4.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 40.png b/src/Sprites/Fonts/sprGameSystem.images/image 40.png
new file mode 100644
index 0000000..e3cfc38
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 40.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 41.png b/src/Sprites/Fonts/sprGameSystem.images/image 41.png
new file mode 100644
index 0000000..dbb9459
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 41.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 42.png b/src/Sprites/Fonts/sprGameSystem.images/image 42.png
new file mode 100644
index 0000000..01f52bb
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 42.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 43.png b/src/Sprites/Fonts/sprGameSystem.images/image 43.png
new file mode 100644
index 0000000..ee8554f
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 43.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 44.png b/src/Sprites/Fonts/sprGameSystem.images/image 44.png
new file mode 100644
index 0000000..db21d31
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 44.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 45.png b/src/Sprites/Fonts/sprGameSystem.images/image 45.png
new file mode 100644
index 0000000..c888e11
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 45.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 46.png b/src/Sprites/Fonts/sprGameSystem.images/image 46.png
new file mode 100644
index 0000000..70cbb1f
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 46.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 47.png b/src/Sprites/Fonts/sprGameSystem.images/image 47.png
new file mode 100644
index 0000000..f56823e
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 47.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 48.png b/src/Sprites/Fonts/sprGameSystem.images/image 48.png
new file mode 100644
index 0000000..dab8016
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 48.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 49.png b/src/Sprites/Fonts/sprGameSystem.images/image 49.png
new file mode 100644
index 0000000..d9441f7
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 49.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 5.png b/src/Sprites/Fonts/sprGameSystem.images/image 5.png
new file mode 100644
index 0000000..7b00828
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 5.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 50.png b/src/Sprites/Fonts/sprGameSystem.images/image 50.png
new file mode 100644
index 0000000..2198ba7
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 50.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 51.png b/src/Sprites/Fonts/sprGameSystem.images/image 51.png
new file mode 100644
index 0000000..90fa0ce
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 51.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 52.png b/src/Sprites/Fonts/sprGameSystem.images/image 52.png
new file mode 100644
index 0000000..38ec570
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 52.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 53.png b/src/Sprites/Fonts/sprGameSystem.images/image 53.png
new file mode 100644
index 0000000..fcc5a7d
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 53.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 54.png b/src/Sprites/Fonts/sprGameSystem.images/image 54.png
new file mode 100644
index 0000000..ec1e1a3
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 54.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 55.png b/src/Sprites/Fonts/sprGameSystem.images/image 55.png
new file mode 100644
index 0000000..b949074
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 55.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 56.png b/src/Sprites/Fonts/sprGameSystem.images/image 56.png
new file mode 100644
index 0000000..c0db3e6
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 56.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 57.png b/src/Sprites/Fonts/sprGameSystem.images/image 57.png
new file mode 100644
index 0000000..c987906
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 57.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 58.png b/src/Sprites/Fonts/sprGameSystem.images/image 58.png
new file mode 100644
index 0000000..c397c29
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 58.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 59.png b/src/Sprites/Fonts/sprGameSystem.images/image 59.png
new file mode 100644
index 0000000..e4bc074
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 59.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 6.png b/src/Sprites/Fonts/sprGameSystem.images/image 6.png
new file mode 100644
index 0000000..c100c3d
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 6.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 60.png b/src/Sprites/Fonts/sprGameSystem.images/image 60.png
new file mode 100644
index 0000000..37e6cbe
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 60.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 61.png b/src/Sprites/Fonts/sprGameSystem.images/image 61.png
new file mode 100644
index 0000000..03a4b10
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 61.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 62.png b/src/Sprites/Fonts/sprGameSystem.images/image 62.png
new file mode 100644
index 0000000..46b0080
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 62.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 63.png b/src/Sprites/Fonts/sprGameSystem.images/image 63.png
new file mode 100644
index 0000000..b61dcae
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 63.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 64.png b/src/Sprites/Fonts/sprGameSystem.images/image 64.png
new file mode 100644
index 0000000..70f2835
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 64.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 65.png b/src/Sprites/Fonts/sprGameSystem.images/image 65.png
new file mode 100644
index 0000000..9bf8767
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 65.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 66.png b/src/Sprites/Fonts/sprGameSystem.images/image 66.png
new file mode 100644
index 0000000..091befc
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 66.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 67.png b/src/Sprites/Fonts/sprGameSystem.images/image 67.png
new file mode 100644
index 0000000..a11bb73
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 67.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 68.png b/src/Sprites/Fonts/sprGameSystem.images/image 68.png
new file mode 100644
index 0000000..d3f8fc2
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 68.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 69.png b/src/Sprites/Fonts/sprGameSystem.images/image 69.png
new file mode 100644
index 0000000..8993138
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 69.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 7.png b/src/Sprites/Fonts/sprGameSystem.images/image 7.png
new file mode 100644
index 0000000..3c67c95
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 7.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 70.png b/src/Sprites/Fonts/sprGameSystem.images/image 70.png
new file mode 100644
index 0000000..830a013
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 70.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 71.png b/src/Sprites/Fonts/sprGameSystem.images/image 71.png
new file mode 100644
index 0000000..dd558f6
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 71.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 72.png b/src/Sprites/Fonts/sprGameSystem.images/image 72.png
new file mode 100644
index 0000000..10873f0
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 72.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 73.png b/src/Sprites/Fonts/sprGameSystem.images/image 73.png
new file mode 100644
index 0000000..4571747
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 73.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 74.png b/src/Sprites/Fonts/sprGameSystem.images/image 74.png
new file mode 100644
index 0000000..f232c77
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 74.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 75.png b/src/Sprites/Fonts/sprGameSystem.images/image 75.png
new file mode 100644
index 0000000..9efa0fd
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 75.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 76.png b/src/Sprites/Fonts/sprGameSystem.images/image 76.png
new file mode 100644
index 0000000..fc1ad0f
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 76.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 77.png b/src/Sprites/Fonts/sprGameSystem.images/image 77.png
new file mode 100644
index 0000000..f9035b0
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 77.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 78.png b/src/Sprites/Fonts/sprGameSystem.images/image 78.png
new file mode 100644
index 0000000..1dda3c6
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 78.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 79.png b/src/Sprites/Fonts/sprGameSystem.images/image 79.png
new file mode 100644
index 0000000..0e933e4
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 79.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 8.png b/src/Sprites/Fonts/sprGameSystem.images/image 8.png
new file mode 100644
index 0000000..c72f2b6
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 8.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 80.png b/src/Sprites/Fonts/sprGameSystem.images/image 80.png
new file mode 100644
index 0000000..232a054
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 80.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 81.png b/src/Sprites/Fonts/sprGameSystem.images/image 81.png
new file mode 100644
index 0000000..e70faa4
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 81.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 82.png b/src/Sprites/Fonts/sprGameSystem.images/image 82.png
new file mode 100644
index 0000000..e5f2465
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 82.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 83.png b/src/Sprites/Fonts/sprGameSystem.images/image 83.png
new file mode 100644
index 0000000..629fe3c
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 83.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 84.png b/src/Sprites/Fonts/sprGameSystem.images/image 84.png
new file mode 100644
index 0000000..a31385a
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 84.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 85.png b/src/Sprites/Fonts/sprGameSystem.images/image 85.png
new file mode 100644
index 0000000..fe5dedb
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 85.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 86.png b/src/Sprites/Fonts/sprGameSystem.images/image 86.png
new file mode 100644
index 0000000..c5db32c
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 86.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 87.png b/src/Sprites/Fonts/sprGameSystem.images/image 87.png
new file mode 100644
index 0000000..73dfbb7
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 87.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 88.png b/src/Sprites/Fonts/sprGameSystem.images/image 88.png
new file mode 100644
index 0000000..e36001c
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 88.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 89.png b/src/Sprites/Fonts/sprGameSystem.images/image 89.png
new file mode 100644
index 0000000..201fd78
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 89.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 9.png b/src/Sprites/Fonts/sprGameSystem.images/image 9.png
new file mode 100644
index 0000000..ccd526d
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 9.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 90.png b/src/Sprites/Fonts/sprGameSystem.images/image 90.png
new file mode 100644
index 0000000..4179351
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 90.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 91.png b/src/Sprites/Fonts/sprGameSystem.images/image 91.png
new file mode 100644
index 0000000..f6b46d0
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 91.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 92.png b/src/Sprites/Fonts/sprGameSystem.images/image 92.png
new file mode 100644
index 0000000..0f9c53d
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 92.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 93.png b/src/Sprites/Fonts/sprGameSystem.images/image 93.png
new file mode 100644
index 0000000..ece8953
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 93.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 94.png b/src/Sprites/Fonts/sprGameSystem.images/image 94.png
new file mode 100644
index 0000000..d6b785f
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 94.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.images/image 95.png b/src/Sprites/Fonts/sprGameSystem.images/image 95.png
new file mode 100644
index 0000000..5d713fe
Binary files /dev/null and b/src/Sprites/Fonts/sprGameSystem.images/image 95.png differ
diff --git a/src/Sprites/Fonts/sprGameSystem.xml b/src/Sprites/Fonts/sprGameSystem.xml
new file mode 100644
index 0000000..c03ed78
--- /dev/null
+++ b/src/Sprites/Fonts/sprGameSystem.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ false
+ RECTANGLE
+
+
+ true
+ false
+ false
+
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 0.png b/src/Sprites/Fonts/sprRomulus.images/image 0.png
new file mode 100644
index 0000000..fa4ed73
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 0.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 1.png b/src/Sprites/Fonts/sprRomulus.images/image 1.png
new file mode 100644
index 0000000..d202c45
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 1.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 10.png b/src/Sprites/Fonts/sprRomulus.images/image 10.png
new file mode 100644
index 0000000..0a443df
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 10.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 11.png b/src/Sprites/Fonts/sprRomulus.images/image 11.png
new file mode 100644
index 0000000..804766c
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 11.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 12.png b/src/Sprites/Fonts/sprRomulus.images/image 12.png
new file mode 100644
index 0000000..030b436
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 12.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 13.png b/src/Sprites/Fonts/sprRomulus.images/image 13.png
new file mode 100644
index 0000000..320b65c
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 13.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 14.png b/src/Sprites/Fonts/sprRomulus.images/image 14.png
new file mode 100644
index 0000000..0663ca3
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 14.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 15.png b/src/Sprites/Fonts/sprRomulus.images/image 15.png
new file mode 100644
index 0000000..6244615
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 15.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 16.png b/src/Sprites/Fonts/sprRomulus.images/image 16.png
new file mode 100644
index 0000000..f979fb0
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 16.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 17.png b/src/Sprites/Fonts/sprRomulus.images/image 17.png
new file mode 100644
index 0000000..8b910cb
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 17.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 18.png b/src/Sprites/Fonts/sprRomulus.images/image 18.png
new file mode 100644
index 0000000..856243a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 18.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 19.png b/src/Sprites/Fonts/sprRomulus.images/image 19.png
new file mode 100644
index 0000000..d5e7ee6
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 19.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 2.png b/src/Sprites/Fonts/sprRomulus.images/image 2.png
new file mode 100644
index 0000000..6fca8bd
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 2.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 20.png b/src/Sprites/Fonts/sprRomulus.images/image 20.png
new file mode 100644
index 0000000..1a657a6
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 20.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 21.png b/src/Sprites/Fonts/sprRomulus.images/image 21.png
new file mode 100644
index 0000000..4b568e4
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 21.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 22.png b/src/Sprites/Fonts/sprRomulus.images/image 22.png
new file mode 100644
index 0000000..c071ca3
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 22.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 23.png b/src/Sprites/Fonts/sprRomulus.images/image 23.png
new file mode 100644
index 0000000..6feebaf
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 23.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 24.png b/src/Sprites/Fonts/sprRomulus.images/image 24.png
new file mode 100644
index 0000000..62ea06a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 24.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 25.png b/src/Sprites/Fonts/sprRomulus.images/image 25.png
new file mode 100644
index 0000000..c416d3d
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 25.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 26.png b/src/Sprites/Fonts/sprRomulus.images/image 26.png
new file mode 100644
index 0000000..9e5297e
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 26.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 27.png b/src/Sprites/Fonts/sprRomulus.images/image 27.png
new file mode 100644
index 0000000..fc4a4f0
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 27.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 28.png b/src/Sprites/Fonts/sprRomulus.images/image 28.png
new file mode 100644
index 0000000..7fde6a5
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 28.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 29.png b/src/Sprites/Fonts/sprRomulus.images/image 29.png
new file mode 100644
index 0000000..3bb9c7e
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 29.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 3.png b/src/Sprites/Fonts/sprRomulus.images/image 3.png
new file mode 100644
index 0000000..f3d7b1b
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 3.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 30.png b/src/Sprites/Fonts/sprRomulus.images/image 30.png
new file mode 100644
index 0000000..82f2519
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 30.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 31.png b/src/Sprites/Fonts/sprRomulus.images/image 31.png
new file mode 100644
index 0000000..35c22a4
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 31.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 32.png b/src/Sprites/Fonts/sprRomulus.images/image 32.png
new file mode 100644
index 0000000..d1c7822
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 32.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 33.png b/src/Sprites/Fonts/sprRomulus.images/image 33.png
new file mode 100644
index 0000000..1544376
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 33.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 34.png b/src/Sprites/Fonts/sprRomulus.images/image 34.png
new file mode 100644
index 0000000..d831cc2
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 34.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 35.png b/src/Sprites/Fonts/sprRomulus.images/image 35.png
new file mode 100644
index 0000000..22c1e8a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 35.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 36.png b/src/Sprites/Fonts/sprRomulus.images/image 36.png
new file mode 100644
index 0000000..6d45032
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 36.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 37.png b/src/Sprites/Fonts/sprRomulus.images/image 37.png
new file mode 100644
index 0000000..4ff283f
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 37.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 38.png b/src/Sprites/Fonts/sprRomulus.images/image 38.png
new file mode 100644
index 0000000..62e9d26
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 38.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 39.png b/src/Sprites/Fonts/sprRomulus.images/image 39.png
new file mode 100644
index 0000000..6cc2254
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 39.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 4.png b/src/Sprites/Fonts/sprRomulus.images/image 4.png
new file mode 100644
index 0000000..a9bd80d
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 4.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 40.png b/src/Sprites/Fonts/sprRomulus.images/image 40.png
new file mode 100644
index 0000000..be1d462
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 40.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 41.png b/src/Sprites/Fonts/sprRomulus.images/image 41.png
new file mode 100644
index 0000000..8ab0532
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 41.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 42.png b/src/Sprites/Fonts/sprRomulus.images/image 42.png
new file mode 100644
index 0000000..63d69e6
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 42.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 43.png b/src/Sprites/Fonts/sprRomulus.images/image 43.png
new file mode 100644
index 0000000..552ac23
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 43.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 44.png b/src/Sprites/Fonts/sprRomulus.images/image 44.png
new file mode 100644
index 0000000..457257a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 44.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 45.png b/src/Sprites/Fonts/sprRomulus.images/image 45.png
new file mode 100644
index 0000000..33b18d7
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 45.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 46.png b/src/Sprites/Fonts/sprRomulus.images/image 46.png
new file mode 100644
index 0000000..5b709d8
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 46.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 47.png b/src/Sprites/Fonts/sprRomulus.images/image 47.png
new file mode 100644
index 0000000..fbbee21
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 47.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 48.png b/src/Sprites/Fonts/sprRomulus.images/image 48.png
new file mode 100644
index 0000000..b4ee970
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 48.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 49.png b/src/Sprites/Fonts/sprRomulus.images/image 49.png
new file mode 100644
index 0000000..8043300
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 49.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 5.png b/src/Sprites/Fonts/sprRomulus.images/image 5.png
new file mode 100644
index 0000000..ad10567
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 5.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 50.png b/src/Sprites/Fonts/sprRomulus.images/image 50.png
new file mode 100644
index 0000000..dc246a6
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 50.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 51.png b/src/Sprites/Fonts/sprRomulus.images/image 51.png
new file mode 100644
index 0000000..55c488d
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 51.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 52.png b/src/Sprites/Fonts/sprRomulus.images/image 52.png
new file mode 100644
index 0000000..956216a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 52.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 53.png b/src/Sprites/Fonts/sprRomulus.images/image 53.png
new file mode 100644
index 0000000..d4e832e
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 53.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 54.png b/src/Sprites/Fonts/sprRomulus.images/image 54.png
new file mode 100644
index 0000000..1fae9c1
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 54.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 55.png b/src/Sprites/Fonts/sprRomulus.images/image 55.png
new file mode 100644
index 0000000..f3273d3
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 55.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 56.png b/src/Sprites/Fonts/sprRomulus.images/image 56.png
new file mode 100644
index 0000000..e3f5287
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 56.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 57.png b/src/Sprites/Fonts/sprRomulus.images/image 57.png
new file mode 100644
index 0000000..9ed9e1b
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 57.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 58.png b/src/Sprites/Fonts/sprRomulus.images/image 58.png
new file mode 100644
index 0000000..019002b
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 58.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 59.png b/src/Sprites/Fonts/sprRomulus.images/image 59.png
new file mode 100644
index 0000000..c1707f4
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 59.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 6.png b/src/Sprites/Fonts/sprRomulus.images/image 6.png
new file mode 100644
index 0000000..e91a031
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 6.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 60.png b/src/Sprites/Fonts/sprRomulus.images/image 60.png
new file mode 100644
index 0000000..4c00cd6
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 60.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 61.png b/src/Sprites/Fonts/sprRomulus.images/image 61.png
new file mode 100644
index 0000000..0be2d91
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 61.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 62.png b/src/Sprites/Fonts/sprRomulus.images/image 62.png
new file mode 100644
index 0000000..ad70e49
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 62.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 63.png b/src/Sprites/Fonts/sprRomulus.images/image 63.png
new file mode 100644
index 0000000..738255f
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 63.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 64.png b/src/Sprites/Fonts/sprRomulus.images/image 64.png
new file mode 100644
index 0000000..c3ed8b8
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 64.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 65.png b/src/Sprites/Fonts/sprRomulus.images/image 65.png
new file mode 100644
index 0000000..c05c179
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 65.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 66.png b/src/Sprites/Fonts/sprRomulus.images/image 66.png
new file mode 100644
index 0000000..96d07b1
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 66.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 67.png b/src/Sprites/Fonts/sprRomulus.images/image 67.png
new file mode 100644
index 0000000..5f4018e
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 67.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 68.png b/src/Sprites/Fonts/sprRomulus.images/image 68.png
new file mode 100644
index 0000000..36faee9
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 68.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 69.png b/src/Sprites/Fonts/sprRomulus.images/image 69.png
new file mode 100644
index 0000000..c2ef71c
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 69.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 7.png b/src/Sprites/Fonts/sprRomulus.images/image 7.png
new file mode 100644
index 0000000..36fa53d
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 7.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 70.png b/src/Sprites/Fonts/sprRomulus.images/image 70.png
new file mode 100644
index 0000000..c78bdf0
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 70.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 71.png b/src/Sprites/Fonts/sprRomulus.images/image 71.png
new file mode 100644
index 0000000..11b3bd7
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 71.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 72.png b/src/Sprites/Fonts/sprRomulus.images/image 72.png
new file mode 100644
index 0000000..5c75438
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 72.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 73.png b/src/Sprites/Fonts/sprRomulus.images/image 73.png
new file mode 100644
index 0000000..d27d385
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 73.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 74.png b/src/Sprites/Fonts/sprRomulus.images/image 74.png
new file mode 100644
index 0000000..d0db5f5
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 74.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 75.png b/src/Sprites/Fonts/sprRomulus.images/image 75.png
new file mode 100644
index 0000000..b072872
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 75.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 76.png b/src/Sprites/Fonts/sprRomulus.images/image 76.png
new file mode 100644
index 0000000..fd560c3
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 76.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 77.png b/src/Sprites/Fonts/sprRomulus.images/image 77.png
new file mode 100644
index 0000000..4024b9c
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 77.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 78.png b/src/Sprites/Fonts/sprRomulus.images/image 78.png
new file mode 100644
index 0000000..8f72a6f
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 78.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 79.png b/src/Sprites/Fonts/sprRomulus.images/image 79.png
new file mode 100644
index 0000000..ea2387c
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 79.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 8.png b/src/Sprites/Fonts/sprRomulus.images/image 8.png
new file mode 100644
index 0000000..22268dd
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 8.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 80.png b/src/Sprites/Fonts/sprRomulus.images/image 80.png
new file mode 100644
index 0000000..65060a8
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 80.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 81.png b/src/Sprites/Fonts/sprRomulus.images/image 81.png
new file mode 100644
index 0000000..4246760
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 81.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 82.png b/src/Sprites/Fonts/sprRomulus.images/image 82.png
new file mode 100644
index 0000000..f94b451
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 82.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 83.png b/src/Sprites/Fonts/sprRomulus.images/image 83.png
new file mode 100644
index 0000000..9d4a671
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 83.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 84.png b/src/Sprites/Fonts/sprRomulus.images/image 84.png
new file mode 100644
index 0000000..28678ba
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 84.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 85.png b/src/Sprites/Fonts/sprRomulus.images/image 85.png
new file mode 100644
index 0000000..7db998a
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 85.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 86.png b/src/Sprites/Fonts/sprRomulus.images/image 86.png
new file mode 100644
index 0000000..0783f55
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 86.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 87.png b/src/Sprites/Fonts/sprRomulus.images/image 87.png
new file mode 100644
index 0000000..7ffdaea
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 87.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 88.png b/src/Sprites/Fonts/sprRomulus.images/image 88.png
new file mode 100644
index 0000000..c32d9dd
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 88.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 89.png b/src/Sprites/Fonts/sprRomulus.images/image 89.png
new file mode 100644
index 0000000..c6c19b2
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 89.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 9.png b/src/Sprites/Fonts/sprRomulus.images/image 9.png
new file mode 100644
index 0000000..3db2d17
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 9.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 90.png b/src/Sprites/Fonts/sprRomulus.images/image 90.png
new file mode 100644
index 0000000..9785592
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 90.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 91.png b/src/Sprites/Fonts/sprRomulus.images/image 91.png
new file mode 100644
index 0000000..c8ef25d
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 91.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 92.png b/src/Sprites/Fonts/sprRomulus.images/image 92.png
new file mode 100644
index 0000000..3663d9f
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 92.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.images/image 93.png b/src/Sprites/Fonts/sprRomulus.images/image 93.png
new file mode 100644
index 0000000..e23f9f0
Binary files /dev/null and b/src/Sprites/Fonts/sprRomulus.images/image 93.png differ
diff --git a/src/Sprites/Fonts/sprRomulus.xml b/src/Sprites/Fonts/sprRomulus.xml
new file mode 100644
index 0000000..da4b581
--- /dev/null
+++ b/src/Sprites/Fonts/sprRomulus.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ true
+ RECTANGLE
+
+
+ true
+ false
+ false
+
diff --git a/src/Sprites/_resources.list.xml b/src/Sprites/_resources.list.xml
new file mode 100644
index 0000000..3a700b6
--- /dev/null
+++ b/src/Sprites/_resources.list.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/Sprites/sprScrollbar.images/image 0.png b/src/Sprites/sprScrollbar.images/image 0.png
new file mode 100644
index 0000000..95d299e
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 0.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 1.png b/src/Sprites/sprScrollbar.images/image 1.png
new file mode 100644
index 0000000..3318ac4
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 1.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 10.png b/src/Sprites/sprScrollbar.images/image 10.png
new file mode 100644
index 0000000..e61591e
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 10.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 11.png b/src/Sprites/sprScrollbar.images/image 11.png
new file mode 100644
index 0000000..4872bfe
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 11.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 12.png b/src/Sprites/sprScrollbar.images/image 12.png
new file mode 100644
index 0000000..678be7d
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 12.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 13.png b/src/Sprites/sprScrollbar.images/image 13.png
new file mode 100644
index 0000000..5d8adfc
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 13.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 14.png b/src/Sprites/sprScrollbar.images/image 14.png
new file mode 100644
index 0000000..788925b
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 14.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 15.png b/src/Sprites/sprScrollbar.images/image 15.png
new file mode 100644
index 0000000..6c572d2
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 15.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 16.png b/src/Sprites/sprScrollbar.images/image 16.png
new file mode 100644
index 0000000..d2b6926
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 16.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 17.png b/src/Sprites/sprScrollbar.images/image 17.png
new file mode 100644
index 0000000..f2ffc85
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 17.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 18.png b/src/Sprites/sprScrollbar.images/image 18.png
new file mode 100644
index 0000000..b552c2d
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 18.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 19.png b/src/Sprites/sprScrollbar.images/image 19.png
new file mode 100644
index 0000000..2875dcf
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 19.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 2.png b/src/Sprites/sprScrollbar.images/image 2.png
new file mode 100644
index 0000000..20b159f
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 2.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 3.png b/src/Sprites/sprScrollbar.images/image 3.png
new file mode 100644
index 0000000..193301e
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 3.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 4.png b/src/Sprites/sprScrollbar.images/image 4.png
new file mode 100644
index 0000000..761070d
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 4.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 5.png b/src/Sprites/sprScrollbar.images/image 5.png
new file mode 100644
index 0000000..e1de4fe
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 5.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 6.png b/src/Sprites/sprScrollbar.images/image 6.png
new file mode 100644
index 0000000..9874b7e
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 6.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 7.png b/src/Sprites/sprScrollbar.images/image 7.png
new file mode 100644
index 0000000..bd7e8c9
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 7.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 8.png b/src/Sprites/sprScrollbar.images/image 8.png
new file mode 100644
index 0000000..9e28632
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 8.png differ
diff --git a/src/Sprites/sprScrollbar.images/image 9.png b/src/Sprites/sprScrollbar.images/image 9.png
new file mode 100644
index 0000000..b026b25
Binary files /dev/null and b/src/Sprites/sprScrollbar.images/image 9.png differ
diff --git a/src/Sprites/sprScrollbar.xml b/src/Sprites/sprScrollbar.xml
new file mode 100644
index 0000000..d616f0a
--- /dev/null
+++ b/src/Sprites/sprScrollbar.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ false
+ PRECISE
+
+
+ true
+ false
+ false
+
diff --git a/src/Time Lines/_resources.list.xml b/src/Time Lines/_resources.list.xml
new file mode 100644
index 0000000..70032a2
--- /dev/null
+++ b/src/Time Lines/_resources.list.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/src/game icon.ico b/src/game icon.ico
new file mode 100644
index 0000000..75bac58
Binary files /dev/null and b/src/game icon.ico differ