SSTrihan

HorrorVale - Name cutoff scrolling

Sep 27th, 2024 (edited)
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.51 KB | Source Code | 0 0
  1. class Window_ItemList < Window_Selectable
  2.   attr_accessor :letter_timer
  3.   attr_accessor :letter_skip
  4.  
  5.   alias :tlb_il_initialize :initialize
  6.   def initialize(x, y, width, height)
  7.     tlb_il_initialize(x, y, width, height)
  8.     @letter_timer = 0
  9.     @letter_skip = 0
  10.   end
  11.  
  12.   def draw_item_name(item, x, y, enabled = true, width = 172)
  13.     return unless item
  14.     draw_icon(item.icon_index, x, y, enabled)
  15.     change_color(normal_color, enabled)
  16.     if @data.index(item) == self.index && text_size(item.name).width > 190
  17.       @letter_skip = 0 if text_size(item.name.slice(@letter_skip, item.name.size)).width < 174
  18.       text = item.name.slice(@letter_skip, item.name.size)
  19.     else
  20.       text = item.name.clone
  21.     end
  22.     if text_size(text).width > 190
  23.       while text_size("#{text}...").width > 190
  24.         text.slice!(-1)
  25.       end
  26.       if @data.index(item) != self.index
  27.         text.concat("...")
  28.       end
  29.     end
  30.     draw_text(x + 24, y, width, line_height, text)
  31.   end
  32.  
  33.   alias :tlb_il_update :update
  34.   def update
  35.     tlb_il_update
  36.     if open?
  37.       @letter_timer += 1
  38.       if @letter_timer == 30
  39.         @letter_timer = 0
  40.         create_contents
  41.         draw_all_items
  42.         @letter_skip += 1
  43.       end
  44.     end
  45.   end
  46. end
  47.  
  48. class Window_SkillList < Window_Selectable
  49.   attr_accessor :letter_timer
  50.   attr_accessor :letter_skip
  51.  
  52.   alias :tlb_sl_initialize :initialize
  53.   def initialize(x, y, width, height)
  54.     tlb_sl_initialize(x, y, width, height)
  55.     @letter_timer = 0
  56.     @letter_skip = 0
  57.   end
  58.  
  59.   def draw_item_name(item, x, y, enabled = true, width = 172)
  60.     return unless item
  61.     draw_icon(item.icon_index, x, y, enabled)
  62.     change_color(normal_color, enabled)
  63.     if @data.index(item) == self.index && text_size(item.name).width > 174
  64.       @letter_skip = 0 if text_size(item.name.slice(@letter_skip, item.name.size)).width < 158
  65.       text = item.name.slice(@letter_skip, item.name.size)
  66.     else
  67.       text = item.name.clone
  68.     end
  69.     if text_size(text).width > 174
  70.       while text_size("#{text}...").width > 174
  71.         text.slice!(-1)
  72.       end
  73.       if @data.index(item) != self.index
  74.         text.concat("...")
  75.       end
  76.     end
  77.     draw_text(x + 24, y, width, line_height, text)
  78.   end
  79.  
  80.   alias :tlb_sl_update :update
  81.   def update
  82.     tlb_sl_update
  83.     if open?
  84.       @letter_timer += 1
  85.       if @letter_timer == 30
  86.         @letter_timer = 0
  87.         create_contents
  88.         draw_all_items
  89.         @letter_skip += 1
  90.       end
  91.     end
  92.   end
  93. end
Advertisement
Add Comment
Please, Sign In to add comment