mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
* Add the system for managed global variables * Travis ban old globals * So you CAN inline proccall, that's neat * Fix that * master.dm * Remove the hack procs * Move InitGlobals to the proper spot * configuration.dm * Fix the missing pre-slash * clockcult.dm * This is probably for the best * Doy * Fix shit * Rest of the DEFINES tree * Fix * Use global. for access * Update find_references_in_globals Always hated that proc Whoever made it must've bee a r e a l idiot... * __HELPERS tree * Move global initialization to master. Fix the declaration * database.dm * Dat newline * I said DECLARATIVE order! * Here's something you can chew on @Iamgoofball * game_modes.dm * Fix this * genetics.dm * flavor_misc.dm * More stuff * Do it mso's way. Keep the controllers as global * Make master actually see it * Fix * Finish _globalvars/lists * Finish the rest of the _globalvars tree * This is weird * Migrate the controllers * SLOTH -> GLOB * Lighting globals * round_start_time -> ticker * PAI card list -> pai SS * record_id_num -> static * Diseases list -> SSdisease * More disease globals to the SS * More disease stuff * Emote list * Better and better * Bluh * So much stuff * Ahh * Wires * dview * station_areas * Teleportlocs * blood_splatter_icons * Stuff and such * More stuff * RAD IO * More stuff and such * Blob shit * Changeling stuff * Add "Balance" to changelogs * Balance for changelog compiler + Auto Tagging * Update the PR template * hivemind_bank * Bip * sacrificed * Good shit * Better define * More cult shit * Devil shit * Gang shit * > borers Fix shit * Rename the define * Nuke * Objectives * Sandbox * Multiverse sword * Announce systems * Stuff and such * TC con * Airlock * doppllllerrrrrr * holopads * Shut up byond you inconsistent fuck * Sneaky fuck * Burp * Bip * Fixnshit * Port without regard * askdlfjs; * asdfjasoidojfi * Protected globals and more * SO MANY * ajsimkvahsaoisd * akfdsiaopwimfeoiwafaw * gsdfigjosidjfgiosdg * AHHHHHHHHHHHHHHHHHHHHHHH!!!!! * facerolll * ASDFASDFASDF * Removes the unused parts of dmm_suite * WIP * Fix quote * asdfjauwfnkjs * afwlunhskjfda * asfjlaiwuefhaf * SO CLOSE * wwwweeeeeewwwww * agdgmoewranwg * HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!? * Fix syntax errors * 100 errors * Another 100 * So many... * Ugh * More shit * kilme * Stuuuuuufffff * ajrgmrlshio;djfa;sdkl * jkbhkhjbmjvjmh * soi soi soi * butt * TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING * lllllllllllllllllllllllllllllllllllllllllll * afsdijfiawhnflnjhnwsdfs * yugykihlugk,kj * time to go * STUFFF!!! * AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!! * ngoaijdjlfkamsdlkf * Break time * aufjsdklfalsjfi * CONTROL KAY AND PRAY * IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * Goteem * Fix testing mode * This does not belong in this PR * Convert it to a controller * Eh, fuck this option * Revert controllerization Ill do it some other time * Fix * Working controllerization * FOR THE LOVE OF CHRIST PROTECT THE LOGS * Protect admins and deadmins * Use the inbuilt proc
68 lines
2.9 KiB
Plaintext
68 lines
2.9 KiB
Plaintext
#define MC_TICK_CHECK ( ( world.tick_usage > GLOB.CURRENT_TICKLIMIT || src.state != SS_RUNNING ) ? pause() : 0 )
|
|
// Used to smooth out costs to try and avoid oscillation.
|
|
#define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current))
|
|
#define MC_AVERAGE(average, current) (0.8 * (average) + 0.2 * (current))
|
|
#define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current))
|
|
#define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;}
|
|
|
|
#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = 1;Processor.processing += Datum}
|
|
#define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = 0;Processor.processing -= Datum
|
|
|
|
//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
|
|
|
|
//subsystem should fire during pre-game lobby.
|
|
#define SS_FIRE_IN_LOBBY 1
|
|
|
|
//subsystem does not initialize.
|
|
#define SS_NO_INIT 2
|
|
|
|
//subsystem does not fire.
|
|
// (like can_fire = 0, but keeps it from getting added to the processing subsystems list)
|
|
// (Requires a MC restart to change)
|
|
#define SS_NO_FIRE 4
|
|
|
|
//subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
|
|
// SS_BACKGROUND has its own priority bracket
|
|
#define SS_BACKGROUND 8
|
|
|
|
//subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background))
|
|
#define SS_NO_TICK_CHECK 16
|
|
|
|
//Treat wait as a tick count, not DS, run every wait ticks.
|
|
// (also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems)
|
|
// (implies SS_FIRE_IN_LOBBY because of how it works)
|
|
// (overrides SS_BACKGROUND)
|
|
// This is designed for basically anything that works as a mini-mc (like SStimer)
|
|
#define SS_TICKER 32
|
|
|
|
//keep the subsystem's timing on point by firing early if it fired late last fire because of lag
|
|
// ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
|
|
#define SS_KEEP_TIMING 64
|
|
|
|
//Calculate its next fire after its fired.
|
|
// (IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
|
|
// This flag overrides SS_KEEP_TIMING
|
|
#define SS_POST_FIRE_TIMING 128
|
|
|
|
//SUBSYSTEM STATES
|
|
#define SS_IDLE 0 //aint doing shit.
|
|
#define SS_QUEUED 1 //queued to run
|
|
#define SS_RUNNING 2 //actively running
|
|
#define SS_PAUSED 3 //paused by mc_tick_check
|
|
#define SS_SLEEPING 4 //fire() slept.
|
|
#define SS_PAUSING 5 //in the middle of pausing
|
|
|
|
#define SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/##X);\
|
|
/datum/controller/subsystem/##X/New(){\
|
|
NEW_SS_GLOBAL(SS##X);\
|
|
PreInit();\
|
|
}\
|
|
/datum/controller/subsystem/##X
|
|
|
|
#define PROCESSING_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/processing/##X);\
|
|
/datum/controller/subsystem/processing/##X/New(){\
|
|
NEW_SS_GLOBAL(SS##X);\
|
|
PreInit();\
|
|
}\
|
|
/datum/controller/subsystem/processing/##X
|