All pastes #909270 Raw Edit

Aurora Dream System 1.0

public text v1 · immutable
·published 2008-02-19 00:33 UTC
rendered paste body
* Aurora Dream System 1.0, Build 001.

* Start of System Setup; sets the virtual-wise stuff ready for Aurora to work. (You can place your Startup-Scripts under this section, as long as they are under the "Basic System Variables" part.)

(0:0) When everything is starting up,

* OR

(0:100) When 1 seconds have passed, offset by 0,

* And if the setup has not already been ran,
   (1:206) and variable %System_Setup.x is not equal to 1,

* Reset all the variables to Zero.
            (5:399) clear all variables to zero.

* Set the basic system variables.
            (5:300) set variable %System_Setup.x to the value 1.
            (5:384) set variable %System_Null to the x,y position (0,0).
            (5:384) set variable %System_Pointer to the x,y position (1337,1337).

* End of System Setup.

* Start of Dream Setup; gets the dream's dimensions (Width and Height), adapts and sets the area that is going to be used for the data storing and gets the Work Area's Dimensions (Area which is not in the red-grid).

* Copy the value of an existing variable (%System_Pointer.x) into a new one and then move its position 1 steps southeast to get an aproximate dream size.
            (5:301) copy the value of variable %System_Pointer into variable %System_Dream_Dimensions.
            (5:353) move the position in variable %System_Dream_Dimensions southeast (down and right) 1 step(s).

* Copy the value of the aproximate dream size into a variable that will be used to get the Work Area's Dimensions later.
            (5:301) copy the value of variable %System_Dream_Dimensions into variable %System_Dream_Work_Area_End.

* Add 8 to the x and y integers of the dream size variable to get the real map size.
            (5:302) take variable %System_Dream_Dimensions.x and add 8 to it.
            (5:302) take variable %System_Dream_Dimensions.y and add 8 to it.

* Copy the value of the variable containing the real map size into the tracking (Storage Area Start Row) array's variable and substract 10 from it to get the first array's X row.
            (5:301) copy the value of variable %System_Dream_Dimensions.x into variable %System_Array_Tracking.x.
            (5:304) take variable %System_Array_Tracking.x and subtract 10 from it.

* Copy the value of the tracking array's variable into the first array's variable and add 2 to it to get the first array's X coordinate.
            (5:301) copy the value of variable %System_Array_Tracking.x into variable %System_Array_A.x.
            (5:302) take variable %System_Array_A.x and add 2 to it.

* Copy the value of the tracking array's variable into the first array's variable and add 2 to it to get the first array's X coordinate.
            (5:301) copy the value of variable %System_Array_A.x into variable %System_Array_B.x.
            (5:302) take variable %System_Array_B.x and add 2 to it.

* Copy the value of the tracking array's variable into the first array's variable and add 2 to it to get the first array's X coordinate.
            (5:301) copy the value of variable %System_Array_B.x into variable %System_Array_C.x.
            (5:302) take variable %System_Array_C.x and add 2 to it.

* Copy the value of the tracking array's variable into the first array's variable and add 2 to it to get the first array's X coordinate.
            (5:301) copy the value of variable %System_Array_C.x into variable %System_Array_D.x.
            (5:302) take variable %System_Array_D.x and add 2 to it.

* Copy the value of the tracking array's variable into the first array's variable and add 2 to it to get the first array's X coordinate.
            (5:301) copy the value of variable %System_Array_D.x into variable %System_Array_E.x.
            (5:302) take variable %System_Array_E.x and add 2 to it.

* Clear the storage area for the data storing. (Pre-Set Data Goes Under This Section.)
      (3:4) within the rectangle (%System_Array_Tracking.x,%System_Null.x) - (%System_Dream_Dimensions.x,%System_Dream_Dimensions.y),
            (5:4) place object type 0.
            (5:1) set the floor to type 0.
            (5:44) place wall shape 0 with texture 1.

* Store the Work Area's start coordinates.
            (5:384) set variable %System_Dream_Work_Area_Start to the x,y position (8,9).

* Get the Work Area's end coordinates.
            (5:304) take variable %System_Dream_Work_Area_End.x and subtract 4 from it.

* End of Dream Setup.

* Start of User Accounts Setup; assigns every entering furre a different User Account Number if any are available, loads their data stored in the PhoenixSpeak Database (if any) and ejects the player if no User Accounts are available.

* Generic - First Case, player enters the dream.
(0:9) When a furre arrives in the dream,

* Emit a message to the player including a link to Aurora Dream System 1.0's website. (Which contains credits).
            (5:200) emit message {Hello [FURRE], this is an <a href="...">Aurora Dream System 1.0</a> Enabled Dream.} to the triggering furre.

* Run a check if any User Accounts are available.
            (5:510) set variable %System_User_Accounts to the X,Y position of a random spot where the floor is type 0 within the rectangle (%System_Array_Tracking.x,%System_Null.x) - (%System_Array_Tracking.x,%System_Dream_Dimensions.y).

* Run a check on how many players are in the dream. (Another part of the DragonSpeak Efficiency System.)
            (5:318) set variable %System_Dream_Population.x to the number of furres in the dream.

* Second Case, no User Accounts are currently available.
(0:9) When a furre arrives in the dream,

* And no User Accounts are available,
   (1:208) and the X,Y position in variable %System_User_Accounts is the same as the position in variable %System_Null,

* Emit a message to the player concerning the situation.
            (5:200) emit message {&#9810; Aurora Dream System: Sorry, the dream is currently full, try coming back again later, thanks for coming.} to the triggering furre.

* Eject the player.
            (5:78) eject the triggering furre.

* Third Case, sucessful check. (You can place your Player Arrival scripts here (such as move the player to the entrance area), as long as they are under the "Clearing The User's Accounts' Area" part.
(0:9) When a furre arrives in the dream,

* And if at least a single User Account is currently available,
   (1:209) and the X,Y position in variable %System_User_Accounts is not the same as the position in variable %System_Null,

* Assign the arriving furre that User Account. (Y Integer Is The New Arriving Furre's User Account Number.)
            (5:316) set the triggering furre's entry code to %System_User_Accounts.y.

* Clear that User Account's storing area for the new User.
      (3:4) within the rectangle (%System_Array_Tracking.x,%System_User_Accounts.y) - (%System_Array_E.x,%System_User_Accounts.y),
            (5:4) place object type 0.
            (5:1) set the floor to type 0.
            (5:44) place wall shape 0 with texture 1.

* Run the User's PhoenixSpeak check.
            (5:610) remember the PhoenixSpeak info {Aurora_User_PhoenixSpeak} about the triggering furre, and put it in variable %System_PhoenixSpeak.x.

* Move the User to the start of the dream.
            (5:15) move the triggering furre to (16,10), or to someplace nearby if it's occupied.

* Fourth Case, an User Account is available, and there's memory left / the User's had previous Data saved.

(0:9) When a furre arrives in the dream,

* And if at least a single User Account is currently available,
   (1:209) and the X,Y position in variable %System_User_Accounts is not the same as the position in variable %System_Null,

* And if the User had previous Data saved,
   (1:206) and variable %System_PhoenixSpeak.x is not equal to %System_Null.x,

* Load the player's Tracking Array Data.
            (5:63) place wall shape 1 at (%System_Array_Tracking.x,%System_User_Accounts.y).

* Load the player's A array's stored data.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Ax} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:41) place object type %System_User_Data_Loader.x at (%System_Array_A.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Ay} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:40) set the floor to type %System_User_Data_Loader.x at (%System_Array_A.x,%System_User_Accounts.y).

* Load the player's B array's stored data.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Bx} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:41) place object type %System_User_Data_Loader.x at (%System_Array_B.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_By} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:40) set the floor to type %System_User_Data_Loader.x at (%System_Array_B.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_BBx} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_BBy} about the triggering furre, and put it in variable %System_User_Data_Loader.y.
            (5:65) place wall shape %System_User_Data_Loader.x with texture %System_User_Data_Loader.y at (%System_Array_B.x,%System_User_Accounts.y).

* Load the player's C array's stored data.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Cx} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:41) place object type %System_User_Data_Loader.x at (%System_Array_C.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Cy} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:40) set the floor to type %System_User_Data_Loader.x at (%System_Array_C.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_CCx} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_CCy} about the triggering furre, and put it in variable %System_User_Data_Loader.y.
            (5:65) place wall shape %System_User_Data_Loader.x with texture %System_User_Data_Loader.y at (%System_Array_C.x,%System_User_Accounts.y).

* Load the player's D array's stored data.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Dx} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:41) place object type %System_User_Data_Loader.x at (%System_Array_D.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Dy} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:40) set the floor to type %System_User_Data_Loader.x at (%System_Array_D.x,%System_User_Accounts.y).

* Load the player's E array's stored data.
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Ex} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:41) place object type %System_User_Data_Loader.x at (%System_Array_E.x,%System_User_Accounts.y).
            (5:610) remember the PhoenixSpeak info {Aurora_Data_Ey} about the triggering furre, and put it in variable %System_User_Data_Loader.x.
            (5:40) set the floor to type %System_User_Data_Loader.x at (%System_Array_E.x,%System_User_Accounts.y).

* End of User Accounts Setup.

* Start of Data Managing; Loads and Updates the triggering furre's dream data and recopiles information from their surroundings.

(0:1) Whenever somebody moves,

* OR

(0:4) When a furre turns,

* OR

(0:10) When a furre leaves the dream,

* OR

(0:15) When a furre uses the get/drop command,

* OR

(0:36) When a furre says or emotes anything,

* OR

(0:39) When a furre emits anything,

* OR

(0:74) When a furre ejects someone from the dream,

* OR

(0:71) When a furre stays in the same square for 1 seconds,

* And the User is not loading the dream,
   (1:119) and the triggering furre (didn't move from/isn't standing at) position (0,0),

* OR

(0:81) When a furre clicks any DragonSpeak Button,

* Update the last player's Data in the storing area.

* Update the Tracking Array's Data.
            (5:41) place object type %User_Data_Position.x at (%System_Array_Tracking.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_Position.y at (%System_Array_Tracking.x,%User_Account.x).
            (5:63) place wall shape %User_Data_Storing.x at (%System_Array_Tracking.x,%User_Account.x).

* Update the A Array's Data.
            (5:41) place object type %User_Data_A.x at (%System_Array_A.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_A.y at (%System_Array_A.x,%User_Account.x).
            (5:65) place wall shape %User_Data_AA.x with texture %User_Data_AA.y at (%System_Array_A.x,%User_Account.x).

* Update the B Array's Data.
            (5:41) place object type %User_Data_B.x at (%System_Array_B.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_B.y at (%System_Array_B.x,%User_Account.x).
            (5:65) place wall shape %User_Data_BB.x with texture %User_Data_BB.y at (%System_Array_B.x,%User_Account.x).

* Update the C Array's Data.
            (5:41) place object type %User_Data_C.x at (%System_Array_C.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_C.y at (%System_Array_C.x,%User_Account.x).

* Update the D Array's Data.
            (5:41) place object type %User_Data_D.x at (%System_Array_D.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_D.y at (%System_Array_D.x,%User_Account.x).

* Update the E Array's Data.
            (5:41) place object type %User_Data_E.x at (%System_Array_E.x,%User_Account.x).
            (5:40) set the floor to type %User_Data_E.y at (%System_Array_E.x,%User_Account.x).

* Recopile Data about the User.
            (5:315) set variable %User_Account.x to the triggering furre's entry code.
            (5:314) set variable %User_Num_Said.x to the number the triggering furre just said.
            (5:317) set variable %User_Holding.x to the number of the object in the triggering furre's paws.
            (5:184) set variable %User_Button.x to the number of the DragonSpeak Button they just pressed.

* Recopile Data about the User's Surroundings. (Position-Wise.)

* Place an item at position 0,0 for Coordinates-Positioning purposes.
            (5:41) place object type %System_Pointer.x at (%System_Null.x,%System_Null.x).

* Get the coordinates of the spot the User is currently standing at. (Even if they sucessfully moved, tracking will be absolute.)
      (3:7) whereever the triggering furre was at when the trigger activated,
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).
            (5:531) set variable %User_At to the X,Y position of a random spot where the object is type %System_Pointer.x that is onscreen for the triggering furre.
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).

* Update the position in the Tracking Array to the position the User is currently standing at.
            (5:41) place object type %User_At.x at (%System_Array_Tracking.x,%User_Account.x).
            (5:40) set the floor to type %User_At.y at (%System_Array_Tracking.x,%User_Account.x).

* Recopile Data about the square the User is currently standing at.
            (5:381) set variable %User_At_Obj.x to the object type at (%User_At.x,%User_At.y).
            (5:380) set variable %User_At_Flr.x to the floor type at (%User_At.x,%User_At.y).
            (5:382) set variable %User_At_Left_Sha.x to the wall shape at (%User_At.x,%User_At.y).
            (5:383) set variable %User_At_Left_Tex.x to the wall texture at (%User_At.x,%User_At.y).
            (5:301) copy the value of variable %User_At into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_At_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_At_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Get the coordinates of the spot the User just moved from.
            (5:350) set variable %User_From to the X,Y position the triggering furre (moved from/is standing at).

* Recopile Data about the square the User just moved to.
            (5:381) set variable %User_From_Obj.x to the object type at (%User_From.x,%User_From.y).
            (5:380) set variable %User_From_Flr.x to the floor type at (%User_From.x,%User_From.y).
            (5:382) set variable %User_From_Left_Sha.x to the wall shape at (%User_From.x,%User_From.y).
            (5:383) set variable %User_From_Left_Tex.x to the wall texture at (%User_From.x,%User_From.y).
            (5:301) copy the value of variable %User_From into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_From_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_From_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Get the coordinates of the spot in front of the User.
       (3:10) in the space right in front of the triggering furre,
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).
            (5:531) set variable %User_Front to the X,Y position of a random spot where the object is type %System_Pointer.x that is onscreen for the triggering furre.
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).

* Recopile Data about the square the User has in front.
            (5:381) set variable %User_Front_Obj.x to the object type at (%User_Front.x,%User_Front.y).
            (5:380) set variable %User_Front_Flr.x to the floor type at (%User_Front.x,%User_Front.y).
            (5:382) set variable %User_Front_Left_Sha.x to the wall shape at (%User_Front.x,%User_Front.y).
            (5:383) set variable %User_Front_Left_Tex.x to the wall texture at (%User_Front.x,%User_Front.y).
            (5:301) copy the value of variable %User_Front into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_Front_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_Front_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Get the coordinates of the spot behind the User.
      (3:12) in the space right behind the triggering furre,
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).
            (5:531) set variable %User_Behind to the X,Y position of a random spot where the object is type %System_Pointer.x that is onscreen for the triggering furre.
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).

* Recopile Data about the square the User has behind.
            (5:381) set variable %User_Behind_Obj.x to the object type at (%User_Behind.x,%User_Behind.y).
            (5:380) set variable %User_Behind_Flr.x to the floor type at (%User_Behind.x,%User_Behind.y).
            (5:382) set variable %User_Behind_Left_Sha.x to the wall shape at (%User_Behind.x,%User_Behind.y).
            (5:383) set variable %User_Behind_Left_Tex.x to the wall texture at (%User_Behind.x,%User_Behind.y).
            (5:301) copy the value of variable %User_Behind into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_Behind_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_Behind_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Turn the User to face their right.
            (5:88) turn the triggering furre clockwise.

* Get the coordinates of the spot in the right of the User.
       (3:10) in the space right in front of the triggering furre,
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).
            (5:531) set variable %User_Right to the X,Y position of a random spot where the object is type %System_Pointer.x that is onscreen for the triggering furre.
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).

* Recopile Data about the square the User has in the right.
            (5:381) set variable %User_Right_Obj.x to the object type at (%User_Right.x,%User_Right.y).
            (5:380) set variable %User_Right_Flr.x to the floor type at (%User_Right.x,%User_Right.y).
            (5:382) set variable %User_Right_Left_Sha.x to the wall shape at (%User_Right.x,%User_Right.y).
            (5:383) set variable %User_Right_Left_Tex.x to the wall texture at (%User_Right.x,%User_Right.y).
            (5:301) copy the value of variable %User_Right into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_Right_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_Right_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Get the coordinates of the spot in the left of the User.
      (3:12) in the space right behind the triggering furre,
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).
            (5:531) set variable %User_Left to the X,Y position of a random spot where the object is type %System_Pointer.x that is onscreen for the triggering furre.
            (5:23) swap the object with the object at (%System_Null.x,%System_Null.x).

* Recopile Data about the square the User has in the left.
            (5:381) set variable %User_Left_Obj.x to the object type at (%User_Left.x,%User_Left.y).
            (5:380) set variable %User_Left_Flr.x to the floor type at (%User_Left.x,%User_Left.y).
            (5:382) set variable %User_Left_Left_Sha.x to the wall shape at (%User_Left.x,%User_Left.y).
            (5:383) set variable %User_Left_Left_Tex.x to the wall texture at (%User_Left.x,%User_Left.y).
            (5:301) copy the value of variable %User_Left into variable %Temporary_A.
            (5:302) take variable %Temporary_A.x and add 1 to it.
            (5:382) set variable %User_Left_Front_Sha.x to the wall shape at (%Temporary_A.x,%Temporary_A.y).
            (5:383) set variable %User_Left_Front_Tex.x to the wall texture at (%Temporary_A.x,%Temporary_A.y).

* Turn the furre back to where they were facing.
            (5:88) turn the triggering furre clockwise.
            (5:88) turn the triggering furre clockwise.
            (5:88) turn the triggering furre clockwise.

* Load the User's Data.

* Load the Tracking Array's Data.
            (5:382) set variable %User_Data_Storing.x to the wall shape at (%System_Array_Tracking.x,%User_Account.x).

* Load the Array A's Data.
            (5:381) set variable %User_Data_A.x to the object type at (%System_Array_A.x,%User_Account.x).
            (5:380) set variable %User_Data_A.y to the floor type at (%System_Array_A.x,%User_Account.x).
            (5:382) set variable %User_Data_AA.x to the wall shape at (%System_Array_A.x,%User_Account.x).
            (5:383) set variable %User_Data_AA.y to the wall texture at (%System_Array_A.x,%User_Account.x).

* Load the Array B's Data.
            (5:381) set variable %User_Data_B.x to the object type at (%System_Array_B.x,%User_Account.x).
            (5:380) set variable %User_Data_B.y to the floor type at (%System_Array_B.x,%User_Account.x).
            (5:382) set variable %User_Data_BB.x to the wall shape at (%System_Array_B.x,%User_Account.x).
            (5:383) set variable %User_Data_BB.y to the wall texture at (%System_Array_B.x,%User_Account.x).

* Load the Array C's Data.
            (5:381) set variable %User_Data_C.x to the object type at (%System_Array_C.x,%User_Account.x).
            (5:380) set variable %User_Data_C.y to the floor type at (%System_Array_C.x,%User_Account.x).

* Load the Array D's Data.
            (5:381) set variable %User_Data_D.x to the object type at (%System_Array_D.x,%User_Account.x).
            (5:380) set variable %User_Data_D.y to the floor type at (%System_Array_D.x,%User_Account.x).

* Load the Array E's Data.
            (5:381) set variable %User_Data_E.x to the object type at (%System_Array_E.x,%User_Account.x).
            (5:380) set variable %User_Data_E.y to the floor type at (%System_Array_E.x,%User_Account.x).

* End of Data Managing.

* Start of Data Closing; clears the Data left behind by the User and saves it to the PhoenixSpeak Database if any present.

* Generic Case; clears the User Account slot in the Storing Area.

(0:10) When a furre leaves the dream,

* And if the User did not leave while loading the dream,
   (1:119) and they didn't move from nor aren't standing on position (0,0),

* Clear the User's Account Slot in the Storing, leaving it available for another player to use it.
            (5:41) place object type %System_Null.x at (%System_Array_Tracking.x,%User_Account.x).
            (5:40) set the floor to type %System_Null.x at (%System_Array_Tracking.x,%User_Account.x).

* Run a check on how many players are in the dream. (Another part of the DragonSpeak Efficiency System.)
            (5:318) set variable %System_Dream_Population.x to the number of furres in the dream.

* PhoenixSpeak-Off Case; memory check was not successful or the User had no PhoenixSpeak-Storing on, proceed to clear their Data.

(0:10) When a furre leaves the dream,

* And if the User did not leave while loading the dream,
   (1:119) and they didn't move from nor aren't standing on position (0,0),

* And the User's PhoenixSpeak-Storing is currently off,
   (1:200) and variable %User_Data_Storing.x is equal to 0,

* Clear their Data in the PhoenixSpeak Database.
            (5:630) forget all PhoenixSpeak info about the triggering furre.

* PhoenixSpeak-On Query Case; runs a memory availability check.

(0:10) When a furre leaves the dream,

* And if the User did not leave while loading the dream,
   (1:119) and they didn't move from nor aren't standing on position (0,0),

* And the User's PhoenixSpeak-Storing is currently on,
   (1:200) and variable %User_Data_Storing.x is equal to 1,

* Run a Memory Availability check on the PhoenixSpeak Database.

            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ax} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ay} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_AAx} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_AAy} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Bx} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_By} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_BBx} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_BBy} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Cx} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Cy} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Dx} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Dy} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ex} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ey} about the triggering furre will now be %System_Null.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_User_PhoenixSpeak} about the triggering furre will now be 1.
            (5:610) remember the PhoenixSpeak info {Aurora_User_PhoenixSpeak} about the triggering furre, and put it in variable %System_PhoenixSpeak.x.

* PhoenixSpeak-On and succesful Memory Check case;

(0:10) When a furre leaves the dream,

* And the User's PhoenixSpeak-Storing is currently on,
   (1:200) and variable %User_Data_Storing.x is equal to 1,

* And if the memory check was successful,
   (1:200) and variable %System_PhoenixSpeak.x is equal to 1,

* Update (save) their Data in the PhoenixSpeak Database.

* Update the Tracking Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_User_PhoenixSpeak} about the triggering furre will now be %User_Data_Storing.x.

* Update the A Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ax} about the triggering furre will now be %User_Data_A.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ay} about the triggering furre will now be %User_Data_A.y.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_AAx} about the triggering furre will now be %User_Data_AA.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_AAy} about the triggering furre will now be %User_Data_AA.y.

* Update the B Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Bx} about the triggering furre will now be %User_Data_B.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_By} about the triggering furre will now be %User_Data_B.y.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_BBx} about the triggering furre will now be %User_Data_BB.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_BBy} about the triggering furre will now be %User_Data_BB.y.

* Update the C Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Cx} about the triggering furre will now be %User_Data_C.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Cy} about the triggering furre will now be %User_Data_C.y.

* Update the D Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Dx} about the triggering furre will now be %User_Data_D.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Dy} about the triggering furre will now be %User_Data_D.y.

* Update the E Array's Data.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ex} about the triggering furre will now be %User_Data_E.x.
            (5:600) memorize that the PhoenixSpeak info {Aurora_Data_Ey} about the triggering furre will now be %User_Data_E.y.

* Emit a successful Data Recording message to the trig. furre.
            (5:200) emit message {&#9810; Aurora Dream System: Data was successfully updated in the PhoenixSpeak Database.} to the triggering furre.

* End of Data Closing.

* End of Aurora Dream System 1.0, Build 001.