Calculator Mod
From FSG Wiki
[edit]
Calculator Mod
Welcome. This is a BS2 mod created by DarkSDL that may be updated someday.
EXEC clearall
EXEC menutop
EXEC menubottom
INCLUDE elements.bs2
ON MOUSEDOWN DRAW ELEMENT:Clear OBJECT X Y "2" ELEMENT:cursor {
"2"
}
ELEMENT1 = ELEMENT:cursor
Element Nothing TNT(Exploding) 0 0 0
Element Nothing 1 100 100 100 0 1 1 1 0 Clear 0 TEXT 1
Element Nothing 2 100 100 100 0 1 1 1 0 Clear 0 TEXT 2
Element Nothing 3 100 100 100 0 1 1 1 0 Clear 0 TEXT 3
Element Nothing 4 100 100 100 0 1 1 1 0 Clear 0 TEXT 4
Element Nothing 5 100 100 100 0 1 1 1 0 Clear 0 TEXT 5
Element Nothing 6 100 100 100 0 1 1 1 0 Clear 0 TEXT 6
Element Nothing 7 100 100 100 0 1 1 1 0 Clear 0 TEXT 7
Element Nothing 8 100 100 100 0 1 1 1 0 Clear 0 TEXT 8
Element Nothing 9 100 100 100 0 1 1 1 0 Clear 0 TEXT 9
Element Nothing 0 100 100 100 0 1 1 1 0 Clear 0 TEXT 0
Element Nothing 1- 100 100 100 0 1 1 1 0 Clear 0 TEXT 1-
Element Nothing -/+ 100 100 100 0 1 1 1 0 Clear 0 TEXT -+
Element Nothing = 100 100 100 0 1 1 1 0 Clear 0 TEXT =
Element Nothing + 100 100 100 0 1 1 1 0 Clear 0 TEXT +
Element Nothing CLR 100 100 100 0 1 1 1 0 Clear 0 TEXT CLR
Element Nothing * 100 100 100 0 1 1 1 0 Clear 0 TEXT *
Element Nothing div 100 100 100 0 1 1 1 0 Clear 0 TEXT div
Element Nothing M+ 100 100 100 0 1 1 1 0 Clear 0 TEXT M+
Element Nothing MC 100 100 100 0 1 1 1 0 Clear 0 TEXT MC
Element Nothing MR 100 100 100 0 1 1 1 0 Clear 0 TEXT MR
Element Nothing rand 100 100 100 0 1 1 1 0 Clear 0 TEXT rand
Element Nothing exp 100 100 100 0 1 1 1 0 Clear 0 TEXT exp
Element Nothing sqrt 100 100 100 0 1 1 1 0 Clear 0 TEXT sqrt
Element None cursor 255 255 255 0 1 1 1 32768 Clear 0 TEXT cursor
Element None Filling1 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling1
Element None Filling2 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling2
Element None Filling3 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling3
Element None Filling4 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling4
Element None Filling5 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling5
Element None Filling6 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling6
Element None Filling7 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling7
Element None Filling8 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling8
Element None Filling9 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling9
Element None Filling0 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling0
Element None Filling- 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling-
Element None Filling-+ 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling-+
Element None Filling= 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling=
Element None Filling+ 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling+
Element None FillingCLR 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingCLR
Element None Filling* 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling*
Element None Fillingd 255 255 255 0 1 1 1 0 Clear 0 TEXT Fillingd
Element None FillingM+ 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingM+
Element None FillingMC 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingMC
Element None FillingMR 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingMR
Element None Filling^ 255 255 255 0 1 1 1 0 Clear 0 TEXT Filling^
Element None FillingRAND 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingRAND
Element None FillingSQRT 255 255 255 0 1 1 1 0 Clear 0 TEXT FillingSQRT
Element None Deathbutton 255 0 0 0 1 1 1 0 Clear 0 TEXT Deathbutton
Element None Lines 255 255 255 0 1 1 1 0 Clear 0 TEXT Lines
Element None Lines1 255 255 255 0 1 1 1 32768 Clear 0 TEXT Lines
Element None Display 0 140 200 0 1 1 1 0 Clear 0 TEXT Display
Element None color 0 60 160 0 1 1 1 0 Clear 0 TEXT color
TRIGGER calcdraw {
DRAW color FILLEDRECT 31 11 308 258
DRAW ELEMENT:Lines RECT 40 70 40 40
DRAW ELEMENT:Lines RECT 90 70 40 40
DRAW ELEMENT:Lines RECT 140 70 40 40
DRAW ELEMENT:Lines RECT 190 70 40 40
DRAW ELEMENT:Lines RECT 240 70 40 40
DRAW ELEMENT:Lines RECT 40 120 40 40
DRAW ELEMENT:Lines RECT 90 120 40 40
DRAW ELEMENT:Lines RECT 140 120 40 40
DRAW ELEMENT:Lines RECT 190 120 40 40
DRAW ELEMENT:Lines RECT 240 120 40 40
DRAW ELEMENT:Lines RECT 40 170 40 40
DRAW ELEMENT:Lines RECT 90 170 40 40
DRAW ELEMENT:Lines RECT 140 170 40 40
DRAW ELEMENT:Lines RECT 190 170 40 40
DRAW ELEMENT:Lines RECT 240 170 40 40
DRAW ELEMENT:Lines RECT 40 220 40 40
DRAW ELEMENT:Lines RECT 90 220 40 40
DRAW ELEMENT:Lines RECT 140 220 40 40
DRAW ELEMENT:Lines RECT 190 220 40 40
DRAW ELEMENT:Lines RECT 240 220 40 40
DRAW ELEMENT:Lines RECT 290 70 40 40
DRAW ELEMENT:Lines RECT 290 120 40 40
DRAW ELEMENT:Lines RECT 290 170 40 40
DRAW ELEMENT:Deathbutton FILLEDCIRCLE 310 240 20
DRAW display FILLEDRECT 40 20 290 40
DRAW ELEMENT:Lines RECT 30 10 310 260
DRAW ELEMENT:1 FILLEDRECT 41 171 38 38
DRAW ELEMENT:2 FILLEDRECT 91 171 38 38
DRAW ELEMENT:3 FILLEDRECT 141 171 38 38
DRAW ELEMENT:4 FILLEDRECT 41 121 38 38
DRAW ELEMENT:5 FILLEDRECT 91 121 38 38
DRAW ELEMENT:6 FILLEDRECT 141 121 38 38
DRAW ELEMENT:7 FILLEDRECT 41 71 38 38
DRAW ELEMENT:8 FILLEDRECT 91 71 38 38
DRAW ELEMENT:9 FILLEDRECT 141 71 38 38
DRAW ELEMENT:1- FILLEDRECT 191 171 38 38
DRAW ELEMENT:0 FILLEDRECT 41 221 38 38
DRAW ELEMENT:-/+ FILLEDRECT 91 221 38 38
DRAW ELEMENT:= FILLEDRECT 141 221 38 38
DRAW ELEMENT:+ FILLEDRECT 191 221 38 38
DRAW ELEMENT:CLR FILLEDRECT 241 221 38 38
DRAW ELEMENT:* FILLEDRECT 191 121 38 38
DRAW ELEMENT:div FILLEDRECT 191 71 38 38
DRAW ELEMENT:MC FILLEDRECT 241 71 38 38
DRAW ELEMENT:MR FILLEDRECT 241 121 38 38
DRAW ELEMENT:M+ FILLEDRECT 241 171 38 38
DRAW ELEMENT:rand FILLEDRECT 291 71 38 38
DRAW ELEMENT:sqrt FILLEDRECT 291 121 38 38
DRAW ELEMENT:exp FILLEDRECT 291 171 38 38
IF (memoryvar != 0) <WRITE ELEMENT:Lines1 320 30 10 CENTER TEXT "M">
IF (error == 1) <WRITE ELEMENT:Lines1 320 50 10 CENTER TEXT "E">
WRITE ELEMENT:Filling1 60 205 40 CENTER TEXT "1"
WRITE ELEMENT:Filling2 110 205 40 CENTER TEXT "2"
WRITE ELEMENT:Filling3 160 205 40 CENTER TEXT "3"
WRITE ELEMENT:Filling4 60 155 40 CENTER TEXT "4"
WRITE ELEMENT:Filling5 110 155 40 CENTER TEXT "5"
WRITE ELEMENT:Filling6 160 155 40 CENTER TEXT "6"
WRITE ELEMENT:Filling7 60 105 40 CENTER TEXT "7"
WRITE ELEMENT:Filling8 110 105 40 CENTER TEXT "8"
WRITE ELEMENT:Filling9 160 105 40 CENTER TEXT "9"
WRITE ELEMENT:Filling- 210 205 40 CENTER TEXT "-"
WRITE ELEMENT:Filling0 60 255 40 CENTER TEXT "0"
WRITE ELEMENT:Filling-+ 110 250 20 CENTER TEXT "-/+"
WRITE ELEMENT:Filling= 160 255 40 CENTER TEXT "="
WRITE ELEMENT:Filling+ 210 255 40 CENTER TEXT "+"
WRITE ELEMENT:FillingCLR 260 255 20 CENTER TEXT "CLR"
WRITE ELEMENT:Filling* 210 165 40 CENTER TEXT "*"
WRITE ELEMENT:Fillingd 210 85 40 CENTER TEXT "_"
WRITE ELEMENT:Fillingd 210 103 50 CENTER TEXT "."
WRITE ELEMENT:Fillingd 210 85 50 CENTER TEXT "."
WRITE ELEMENT:FillingMC 260 105 25 CENTER TEXT "MC"
WRITE ELEMENT:FillingMR 260 155 25 CENTER TEXT "MR"
WRITE ELEMENT:FillingM+ 260 205 25 CENTER TEXT "M+"
WRITE ELEMENT:FillingRAND 310 105 15 CENTER TEXT "RAND"
WRITE ELEMENT:FillingSQRT 310 155 15 CENTER TEXT "SQRT"
WRITE ELEMENT:Filling^ 310 215 40 CENTER TEXT "^"
IF (operateyet == 0) {
WRITE ELEMENT:Lines1 42 54 40 NUMBER dis1
}
IF (operateyet == 1) {
WRITE ELEMENT:Lines1 42 54 40 NUMBER dis2
}
IF (operateyet == 2) {
WRITE ELEMENT:Lines1 42 54 40 NUMBER dis3
}
IF (deadcalc == 0) {
TIMER 1 FRAMES calcdraw
}
}
TRIGGER setcolorstuff {
IF (specialnumber == 0) {
SET color ELEMENT:color
SET display ELEMENT:Display
}
}
TRIGGER specialdetect {
IF (dis1 == 13) {
SET specialnumber 13
}
IF (dis1 == 666) {
SET specialnumber 666
}
IF (dis1 == 777) {
SET specialnumber 777
}
IF (dis1 == 888) {
SET specialnumber 888
}
IF (dis1 == 1337) {
SET specialnumber 1337
}
}
TRIGGER KEY_1 {
DRAW ELEMENT:Clear REPLACEFILLEDCIRCLE X Y 200 0 ELEMENT:cursor
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 1> ELSE <SET dis1 ((dis1 * 10) + 1)>
}
TRIGGER KEY_2 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 2> ELSE <SET dis1 ((dis1 * 10) + 2)>
}
TRIGGER KEY_3 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 3> ELSE <SET dis1 ((dis1 * 10) + 3)>
}
TRIGGER KEY_4 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 4> ELSE <SET dis1 ((dis1 * 10) + 4)>
}
TRIGGER KEY_5 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 5> ELSE <SET dis1 ((dis1 * 10) + 5)>
}
TRIGGER KEY_6 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 6> ELSE <SET dis1 ((dis1 * 10) + 6)>
}
TRIGGER KEY_7 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 7> ELSE <SET dis1 ((dis1 * 10) + 7)>
}
TRIGGER KEY_8 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 8> ELSE <SET dis1 ((dis1 * 10) + 8)>
}
TRIGGER KEY_9 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 9> ELSE <SET dis1 ((dis1 * 10) + 9)>
}
TRIGGER KEY_0 {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
IF ((dis1 == 0) && (blockage == 0)) <SET dis1 0> ELSE <SET dis1 ((dis1 * 10) + 0)>
}
TRIGGER KEY_- {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
SET operator 1
SET firstres dis1
SET dis1 0
}
TRIGGER KEY_+ {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
SET operator 2
SET firstres dis1
SET dis1 0
}
TRIGGER KEY_* {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
SET operator 3
SET firstres dis1
SET dis1 0
}
TRIGGER KEY_/ {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
SET operator 4
SET firstres dis1
SET dis1 0
}
TRIGGER KEY_^ {
blockage = 1
IF (blockage == 1) {
TIMER 90 FRAMES {
blockage = 0
}
}
SET operator 5
SET firstres dis1
SET dis1 0
}
TRIGGER reverse {
SET dis1 (dis1 * -1)
}
TRIGGER KEY_= {
MESSAGE CLEAR
IF (specialz == 0) <MESSAGE ADDTEXT "SET dis1 (firstres">
IF (operator == 1) <MESSAGE ADDTEXT " - ">
IF (operator == 2) <MESSAGE ADDTEXT " + ">
IF (operator == 3) <MESSAGE ADDTEXT " * ">
IF (operator == 4) <MESSAGE ADDTEXT " / ">
IF (operator == 5) <MESSAGE ADDTEXT " ^ ">
IF (specialq == 0) <MESSAGE ADDTEXT "dis1)">
IF (specialz == 1) <MESSAGE ADDTEXT "SET dis1 (SQRT"
IF (specialq == 1) <MESSAGE ADDTEXT " dis1)">
MESSAGE EXEC
SET operator 0
SET specialz 0
SET specialq 0
}
TRIGGER KEY_RETURN {
MESSAGE CLEAR
IF (specialz == 0) <MESSAGE ADDTEXT "SET dis1 (firstres">
IF (operator == 1) <MESSAGE ADDTEXT " - ">
IF (operator == 2) <MESSAGE ADDTEXT " + ">
IF (operator == 3) <MESSAGE ADDTEXT " * ">
IF (operator == 4) <MESSAGE ADDTEXT " / ">
IF (operator == 5) <MESSAGE ADDTEXT " ^ ">
IF (specialq == 0) <MESSAGE ADDTEXT "dis1)">
IF (specialz == 1) <MESSAGE ADDTEXT "SET dis1 (SQRT"
IF (specialq == 1) <MESSAGE ADDTEXT " dis1)">
MESSAGE EXEC
SET operator 0
SET specialz 0
SET specialq 0
}
TRIGGER KEY_F1 {
dis1 = 0
operator = 0
specialz = 0
specialq = 0
error = 0
specialnumber = 0
}
TRIGGER mcclear {
SET memoryvar 0
}
TRIGGER mrmem {
SET dis1 memoryvar
operator = 0
}
TRIGGER m+mem {
SET memoryvar (memoryvar + dis1)
SET dis1 0
}
TRIGGER randit {
SET dis1 (0 RAND 999999999)
}
TRIGGER sqrtd {
SET specialz 1
SET specialq 1
MESSAGE CLEAR
IF (specialz == 1) <MESSAGE ADDTEXT "SET dis1 (SQRT"
IF (specialq == 1) <MESSAGE ADDTEXT " dis1)">
MESSAGE EXEC
specialz = 0
specialq = 0
}
TRIGGER DEATH {
deadcalc = 1
DRAW ELEMENT:TNT(Exploding) FILL 86 119
IF (deadcalc == 1) {
TIMER 200 FRAMES {
deadcalc = 0
}
}
}
TRIGGER TNTexplosion {
DRAW 0 FILLEDCIRCLE X1 Y1 (0 RAND 20) 0
FOR explosion1raycount FROM 1 TO 4 DO TNTexplosionRay (X1 * 100) (Y1 * 100) ((0 - 100) RAND 100) ((0 - 100) RAND 100) (350 RAND 500)
}
TRIGGER TNTexplosionRay {
DRAW elementfire FILLEDCIRCLE ($0 / 100) ($1 / 100) 2 0
IF ($4 > 0) <TIMER 1 FRAMES TNTexplosionRay ($0 - $3) ($1 - $2) ($2 - 1) $3 ($4 - 1)>
}
TRIGGER setnod {
SET dis1 0
IF (error == 1) <TIMER 1 FRAMES setnod>
}
TRIGGER optoutd {
IF (dis1 > 999999999) {
SET error 1
IF (error == 1) {
TIMER 1 FRAMES {
EXEC setnod
}
}
}
IF (dis1 < -999999999) {
SET error 1
IF (error == 1) {
TIMER 1 FRAMES {
EXEC setnod
}
}
}
TIMER 1 FRAMES optoutd
}
TRIGGER build {
MESSAGE CLEAR
MESSAGE ADDTEXT "SDL's Calculator"
MESSAGE ADDLINE
MESSAGE ADDTEXT "~DarkSDL"
MESSAGE MESSAGEBOX
MESSAGE CLEAR
MESSAGE ADDTEXT "Build v2.0"
MESSAGE MESSAGEBOX
}
InteractionTrigger cursor 1 KEY_1 32000
InteractionTrigger cursor Filling1 KEY_1 32000
InteractionTrigger cursor 2 KEY_2 32000
InteractionTrigger cursor Filling2 KEY_2 32000
InteractionTrigger cursor 3 KEY_3 32000
InteractionTrigger cursor Filling3 KEY_3 32000
InteractionTrigger cursor 1- KEY_- 32000
InteractionTrigger cursor Filling- KEY_- 32000
InteractionTrigger cursor 0 KEY_0 32000
InteractionTrigger cursor Filling0 KEY_0 32000
InteractionTrigger cursor -/+ reverse 32000
InteractionTrigger cursor Filling-+ reverse 32000
InteractionTrigger cursor = KEY_= 32000
InteractionTrigger cursor Filling= KEY_= 32000
InteractionTrigger cursor + KEY_+ 32000
InteractionTrigger cursor Filling+ KEY_+ 32000
InteractionTrigger cursor CLR KEY_F1 32000
InteractionTrigger cursor FillingCLR KEY_F1 32000
InteractionTrigger cursor 4 KEY_4 32000
InteractionTrigger cursor Filling4 KEY_4 32000
InteractionTrigger cursor 5 KEY_5 32000
InteractionTrigger cursor Filling5 KEY_5 32000
InteractionTrigger cursor 6 KEY_6 32000
InteractionTrigger cursor Filling6 KEY_6 32000
InteractionTrigger cursor 7 KEY_7 32000
InteractionTrigger cursor Filling7 KEY_7 32000
InteractionTrigger cursor 8 KEY_8 32000
InteractionTrigger cursor Filling8 KEY_8 32000
InteractionTrigger cursor * KEY_* 32000
InteractionTrigger cursor Filling* KEY_* 32000
InteractionTrigger cursor 9 KEY_9 32000
InteractionTrigger cursor Filling9 KEY_9 32000
InteractionTrigger cursor div KEY_/ 32000
InteractionTrigger cursor Fillingd KEY_/ 32000
InteractionTrigger cursor MC mcclear 32000
InteractionTrigger cursor FillingMC mcclear 32000
InteractionTrigger cursor MR mrmem 32000
InteractionTrigger cursor FillingMR mrmem 32000
InteractionTrigger cursor M+ m+mem 32000
InteractionTrigger cursor FillingMC m+mem 32000
InteractionTrigger cursor exp KEY_^ 32000
InteractionTrigger cursor Filling^ KEY_^ 32000
InteractionTrigger cursor rand randit 32000
InteractionTrigger cursor FillingRAND randit 32000
InteractionTrigger cursor sqrt sqrtd 32000
InteractionTrigger cursor FillingSQRT sqrtd 32000
InteractionTrigger cursor Deathbutton DEATH 32000
EXEC optoutd
EXEC specialdetect
EXEC setcolorstuff
EXEC calcdraw
EXEC build
