All pastes #2048438 Raw Edit

Eclipse 1.0 Draft.

public text v1 · immutable
#2048438 ·published 2011-04-19 21:15 UTC
rendered paste body
* Eclipse 1.0, by Mizah.

** Initialization Routine starts here.

* System Setup starts here, prepares and readies Eclipse's main basic functions for the system to work.

(0:0) When everything is starting up,

* Or,

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

* And (If the 'Setup Procedure' has not already been run),

   (1:206) and variable #%ECL_SYS_SETUP.x is not equal to #1,

* Reset the 'Dream's Variables'.

            (5:399) clear all variables to zero.

* Set-Up Eclipse's 'System Variables'.

            (5:300) set variable #%ECL_SYS_SETUP.x to the value #1.
            (5:384) set variable #%ECL_SYS_NULL to the x,y position (#0,#0).
            (5:384) set variable #%ECL_SYS_VOID to the x,y position (#1337,#1337).
            (5:384) set variable #%ECL_SYS_POINTER to the x,y position (#0,#0).

* System Setup ends here.

--- <--> --- <--> --- <--> ---

* Dream Setup starts here, measures the size of the dream and its 'in-boundaries area' total dimensions, and adapts an off-bounds area of the map as a physical array for data storage.

* Copy the value of 'SYS_VOID' into a new variable that will be used to measure the size of the map later on,

            (5:301) copy the value of variable #%ECL_SYS_VOID into variable #%ECL_DATA_MAP_SIZE.
            (5:353) move the position in variable #%ECL_DATA_MAP_SIZE southeast (down and right) #1 step(s).

* Copy the previously obtained dimensions into a new variable that will be used to measure the map's 'In-Boundaries' area size later on,

            (5:301) copy the value of variable #%ECL_DATA_MAP_SIZE into variable #%ECL_DATA_WORKAREA_END.

* Calculate the Map's actual dimensions by adding '10 - X' & '9 - Y' to the 'DATA_MAP_SIZE' variable's X and Y integers.

            (5:302) take variable #%ECL_DATA_MAP_SIZE.x and add #10 to it.
            (5:302) take variable #%ECL_DATA_MAP_SIZE.y and add #9 to it.

* Copy the previously calculated data into the 'Tracking Array' variable's 'X' integer followed by substracting '2' from it to obtain the X coordinate integer of the 'Data' array's coordinates.

            (5:301) copy the value of variable #%ECL_DATA_MAP_SIZE into variable #%ECL_DATA_ARRAY_START.
            (5:304) take variable #%ECL_DATA_ARRAY_START.x and subtract #2 from it.
            (5:300) set variable #%ECL_DATA_ARRAY_START.y to the value #0.

* Copy the previously calculated data into the 'Tracking Array End' variable and substract 2 from its 'X' and 'Y' integers.

            (5:301) copy the value of variable #%ECL_DATA_MAP_SIZE into variable #%ECL_DATA_ARRAY_END.
            (5:304) take variable #%ECL_DATA_ARRAY_END.x and subtract #2 from it.
            (5:304) take variable #%ECL_DATA_ARRAY_END.y and subtract #1 from it.

* Prepare the 'A' array.

            (5:301) copy the value of variable #%ECL_DATA_ARRAY_START into variable #%ECL_DATA_ARRAY_A.
            (5:304) take variable #%ECL_DATA_ARRAY_A.x and subtract #2 from it.
            (5:301) copy the value of variable #%ECL_DATA_ARRAY_A.x into variable #%ECL_DATA_ARRAY_B.

* Prepare the 'B' array.

            (5:304) take variable #%ECL_DATA_ARRAY_B.x and subtract #2 from it.
            (5:301) copy the value of variable #%ECL_DATA_ARRAY_B.x into variable #%ECL_DATA_ARRAY_C.

* Prepare the 'C' array.

            (5:304) take variable #%ECL_DATA_ARRAY_C.x and subtract #2 from it.
            (5:301) copy the value of variable #%ECL_DATA_ARRAY_C.x into variable #%ECL_DATA_ARRAY_D.

* Prepare the 'D' array.

            (5:304) take variable #%ECL_DATA_ARRAY_D.x and subtract #2 from it.
            (5:301) copy the value of variable #%ECL_DATA_ARRAY_D.x into variable #%ECL_DATA_ARRAY_E.

* Prepare the 'E' array.

            (5:304) take variable #%ECL_DATA_ARRAY_E.x and subtract #2 from it.

* Prepare the entire 'Data' array storage area.

      (3:4) within the rectangle (#%ECL_DATA_ARRAY_E.x,#%ECL_DATA_ARRAY_E.y) - (#%ECL_DATA_ARRAY_END.x,#%ECL_DATA_ARRAY_END.y),
            (5:1) set the floor to type #%ECL_SYS_NULL.x.
            (5:4) place object type #%ECL_SYS_NULL.x.
            (5:44) place wall shape #%ECL_SYS_NULL.x with texture #%ECL_SYS_NULL.y.

* Toggle the Setup's 'Status' to done.

            (5:300) set variable #%ECL_DATA_ARRAY_START.y to the value #1.

* Calculate the map's 'Work Area' dimensions.

            (5:384) set variable #%ECL_DATA_WORKAREA_START to the x,y position (#8,#9).
            (5:353) move the position in variable #%ECL_DATA_WORKAREA_END southeast (down and right) #1 step(s).
            (5:304) take variable #%ECL_DATA_WORKAREA_END.x and subtract #4 from it.

* Dream Setup ends here.

--- <--> --- <--> --- <--> ---

** Initialization Routine ends here.

--- <--> --- <--> --- <--> --- /!\ --- <--> --- <--> --- <--> ---

** PhoenixSpeak Pre-Setup starts here.

* PhoenixSpeak Detection starts here.

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

* Or,

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

* Reset the 'ECL_SYS_PS' variable for PhoenixSpeak Detection.

            (5:301) copy the value of variable #%ECL_SYS_NULL into variable #%ECL_SYS_PS.

* Check for the presence of a 'PhoenixSpeak' database.

            (5:602) memorize that the PhoenixSpeak info {ECL_TMP_PS_CHECK} about this dream will now be #1.
            (5:612) remember the PhoenixSpeak info {ECL_TMP_PS_CHECK} about this dream, and put it in variable #%ECL_SYS_PS.x.
            (5:632) forget the PhoenixSpeak info {ECL_TMP_PS_CHECK} about this dream.

* PhoenixSpeak Detection ends here.

--- <--> --- <--> --- <--> ---

** PhoenixSpeak Pre-Setup ends here.

--- <--> --- <--> --- <--> --- /!\ --- <--> --- <--> --- <--> ---

** Accounts Setup starts here.

* Account Creation I. (Setup).

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

* Emit an entry message telling players that Eclipse is enabled on the dream.

            (5:200) emit message {<a href="...">Eclipse 1.0</a> Enabled Dream, a revised and modernized version of <a href="">Quiddity Dream System 2.0</a>.} to the triggering furre.

* Reset the value of the variable 'ECL_SYSTEM_NEW_KEY' to prevent any possible 'Data' corruption.

            (5:301) copy the value of variable #%ECL_SYS_NULL into variable #%ECL_SYS_NEW_KEY.

* Check if there are any available 'Data' array slots open.

            (5:510) set variable #%ECL_SYS_NEW_KEY.y to the X,Y position of a random spot where the floor is type #%ECL_SYS_NULL.x within the rectangle (#%ECL_DATA_ARRAY_E.x,#%ECL_DATA_ARRAY_E.y) - (#%ECL_DATA_ARRAY_END.x,#%ECL_DATA_ARRAY_END.y).

* Assign an 'User Key' that will be checked later.

            (5:316) set the triggering furre's entry code to #%ECL_SYS_NEW_KEY.x.

* Refresh the 'Population' data variable.

            (5:318) set variable #%ECL_DATA_POPULATION.x to the number of furres in the dream.

* Account Creation I ends here.

--- <--> --- <--> --- <--> ---

* Account Creation II (Unsuccessful Key Creation) starts here.

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

* And the check for any free 'Data' arrays was unsuccessful.

   (1:208) and the X,Y position in variable #%ECL_SYS_NEW_KEY is the same as the position in variable #%ECL_SYS_NULL,

* Notify the 'User' about the unavailability of User Accounts and eject them from the dream.

            (5:200) emit message {<b>[%] Eclipse</b>: Sorry [FURRE], but there are currently no available User Keys in the dream's database, please try again later. #SA} to the triggering furre.
            (5:78) eject the triggering furre.

* Account Creation II ends here.

--- <--> --- <--> --- <--> ---

* Account Creation III (Successful Key Creation) starts here.

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

* And, if the previously assigned 'User Key' is available.

   (1:209) and the X,Y position in variable #%ECL_SYS_NEW_KEY is not the same as the position in variable #%ECL_SYS_NULL,

* Free Up the 'Array' for the arriving User's data storage.

      (3:4) within the rectangle (#%ECL_DATA_ARRAY_E.x,#%ECL_SYS_NEW_KEY.y) - (#%ECL_DATA_ARRAY_A.x,#%ECL_SYS_NEW_KEY.y),
            (5:1) set the floor to type #%ECL_SYS_NULL.x.
            (5:4) place object type #%ECL_SYS_NULL.x.
            (5:63) place wall shape #%ECL_SYS_NULL.x at (#%ECL_SYS_NEW_KEY.x,#%ECL_SYS_NEW_KEY.y).

* Account Creation III ends here.

--- <--> --- <--> --- <--> ---

* Account Creation IV (PhoenixSpeak Database Check).

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

* And, both of the previous checks were successful.

   (1:209) and the X,Y position in variable #%ECL_SYS_NEW_KEY is not the same as the position in variable #%ECL_SYS_NULL,
   (1:209) and the X,Y position in variable #%ECL_SYS_PS is not the same as the position in variable #%ECL_SYS_NULL,

* Prepare the 'PhoenixSpeak' variable.

            (5:301) copy the value of variable #%ECL_SYS_NULL into variable #%ECL_SYS_PS_LOAD.
            (5:612) remember the PhoenixSpeak info {ECL_[FURRE]_PS} about this dream, and put it in variable #%ECL_SYS_PS_LOAD.


--- <--> --- <--> --- <--> ---

* Account Creation V (PhoenixSpeak Data Setup) starts here.

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

* And, all of the previous checks were successful.

   (1:209) and the X,Y position in variable #%ECL_SYS_NEW_KEY is not the same as the position in variable #%ECL_SYS_NULL,
   (1:209) and the X,Y position in variable #%ECL_SYS_PS_LOAD is not the same as the position in variable #%ECL_SYS_NULL,

* Clear up the PhoenixSpeak Arrays of the new 'User Account'.

            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_A_x} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_A} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_A_y} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_B} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_B_x} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_C} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_B_y} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_D} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_C_x} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_E} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_C_y} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_F} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_D_x} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_G} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_D_y} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_H} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_E_x} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_I} about this dream will now be { }.
            (5:602) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_E_y} about this dream will now be #%ECL_SYS_NULL.x.
            (5:605) memorize that the PhoenixSpeak info {ECL_[FURRE]_DATA_J} about this dream will now be { }.