diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index bba1b9eaa22..b5c4dd522ff 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -136,15 +136,18 @@ return 0 // This one takes an object's type instead of an instance, as above. -/mob/living/silicon/robot/proc/has_active_type(var/type_to_compare) +/mob/living/silicon/robot/proc/has_active_type(var/type_to_compare, var/explicit = FALSE) var/list/active_modules = list(module_state_1, module_state_2, module_state_3) - if(is_type_in_modules(type_to_compare, active_modules)) + if(is_type_in_modules(type_to_compare, active_modules, explicit)) return TRUE return FALSE -/mob/living/silicon/robot/proc/is_type_in_modules(var/type, var/list/modules) - for(var/module in modules) - if(istype(module, type)) +/mob/living/silicon/robot/proc/is_type_in_modules(var/type, var/list/modules, var/explicit = FALSE) + for(var/atom/module in modules) + if(explicit && isatom(module)) + if(module.type == type) + return TRUE + else if(istype(module, type)) return TRUE return FALSE diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index d10451a5201..b95612426a0 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -343,6 +343,8 @@ if(module) var/list/module_sprites = SSrobot_sprites.get_module_sprites(module, src) if(module_sprites.len == 1 || !client) + if(!module_sprites.len) + return sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return