yogstation13 / Yogstation

Discord: https://discord.gg/yogs13 Forums: https://forums.yogstation.net
GNU Affero General Public License v3.0
139 stars 449 forks source link

Ghost 'View Range' breaks the game #5079

Closed L1onfire closed 5 years ago

L1onfire commented 5 years ago

Issue reported from Round ID: 22375 (Yogstation 13) Well for some reason at the moment, the view range option goes up to really ridiculous ranges of view from the default 7 to a whopping maximum of 128 and with a custom option too. When you use it it breaks the game as well, like at 32 it freezes the game, and then if you try to bring it back in it makes the game unable to be viewed properly. Plus the menu you open up to see the View Range just says 'FUCK YE' so I am unsure if this is on purpose or if it is malicious. scrnshot1

Reporting client version: 512

Altoids1 commented 5 years ago

There is an explicit warning given, whenever you try to set it to anything higher than 64, that using the very high view ranges can cause "horrendous lag, visual errors, and game crashes".

I can lower the warning to 32 (with maybe a default warning when you try to use it on the station Z-level, since redrawing large portions of the station is what causes this graphical error), I guess, but ultimately you just gotta not use it unless you're in a barren enough area so as to not cause these graphical bugs.

Further, it sounds like you're using the admin version of the verb. Related: How do you have access to the admin version of the verb?

Caused by #5040

Altoids1 commented 5 years ago

Okay, I know why you have the admin only, debug-ass version of the verb:

    //yogs start -- Divert this verb to the admin variant if this guy has it
    if(hascall(usr.client,"toggle_view_range"))
        call(usr.client,"toggle_view_range")()
        return
    //yogs end

The way I'm checking to see if you have the adminverb doesn't work, because it just checks if your client has the proc, (which all clients do, since toggle_view_range is defined as a /client/proc/) Instead I'll have to do, like

var/theproc = /client/proc/toggle_view_range
if(theproc in usr.client.verbs)

or something.