MARKUP_MAP = {
- 'NORTH': (1, 'glyphs/arrow_up.png'),
- 'SOUTH': (1, 'glyphs/arrow_down.png'),
- 'EAST': (1, 'glyphs/arrow_right.png'),
- 'WEST': (1, 'glyphs/arrow_left.png'),
+ 'NORTH': (1, 'glyphs/arrow_up.png', None),
+ 'SOUTH': (1, 'glyphs/arrow_down.png', None),
+ 'EAST': (1, 'glyphs/arrow_right.png', None),
+ 'WEST': (1, 'glyphs/arrow_left.png', None),
+ 'HEALTH': (1, 'glyphs/health.png', PALETTE.DARK_RED),
+ 'WINTOKEN': (1, 'glyphs/win.png', PALETTE.DARK_OLIVE),
+ 'KEY': (1, 'glyphs/key.png', None),
+ 'MSB': (1, 'glyphs/msb.png', None),
+ 'REDKEY': (1, 'glyphs/key.png', PALETTE.ORANGE),
+ 'GREENKEY': (1, 'glyphs/key.png', PALETTE.GREEN),
+ 'BLUEKEY': (1, 'glyphs/key.png', PALETTE.BLUE),
}
line_count = 0
for line in self.text.splitlines():
current_words = []
- for word in line.split():
+ remaining_words = line.split()
+ while remaining_words:
+ word = remaining_words[0]
suffix = ''
if word[-1] in '.,':
suffix = word[-1]
if words_fit(current_words):
if markup_data is not None:
size = self.font.size(
- ' '.join(current_words[:-1]) + ' ')
+ ' '.join(current_words[:-1] + ['']))
pos = (size[0] * EIGHT_BIT_SCALE,
size[1] * line_count * EIGHT_BIT_SCALE)
pos = (pos[0] + self.padding, pos[1] + self.padding)
+ colour = self.colour
+ if markup_data[2] is not None:
+ colour = markup_data[2]
image_map[pos] = resources.get_image(
markup_data[1],
- transforms=(EIGHT_BIT, blender(self.colour)))
- continue
+ transforms=(EIGHT_BIT, blender(colour)))
+ remaining_words.pop(0)
else:
line_count += 1
yield ' '.join(current_words[:-1])
- current_words = current_words[-1:]
+ current_words = []
if current_words and words_fit(current_words):
yield ' '.join(current_words)