objects/oKeyConfig/draw.gml
From spelunky.gmk, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC, shown whole under the Spelunky User License v1.1b. Extracted by spelunky.ai's tools, an unofficial fan project, one file per script or event; the // ==== lines are the extractor's, naming each action of the event. Some scripts are others' work that Derek Yu credits in the source's readme.txt: Martin Piecyk's platform engine, ChevyRay's view scaling scripts and tsg1zzn's Super Sound System.
oKeyConfig's draw event, 171 lines of GML.
draw_set_font(global.myFontSmall);draw_set_color(c_yellow);strLen = string_length("PRESS KEY FOR")*8;n = 160 - strLen;n = ceil(n / 2);draw_text(n, 32, "PRESS KEY FOR");draw_text(8, 96, "ESC TO KEEP SAME.");draw_text(8, 104, "CURRENT: ");if (status == 0){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("UP")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "UP"); currVal = global.keyUpVal;}else if (status == 1){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("DOWN")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "DOWN"); currVal = global.keyDownVal;}else if (status == 2){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("LEFT")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "LEFT"); currVal = global.keyLeftVal;}else if (status == 3){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("RIGHT")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "RIGHT"); currVal = global.keyRightVal;}else if (status == 4){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("JUMP")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "JUMP"); currVal = global.keyJumpVal;}else if (status == 5){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("ACTION")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "ACTION"); currVal = global.keyAttackVal;}else if (status == 6){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("SWITCH")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "SWITCH"); currVal = global.keyItemVal;}else if (status == 7){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("RUN")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "RUN"); currVal = global.keyRunVal;}else if (status == 8){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("BOMB")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "BOMB"); currVal = global.keyBombVal;}else if (status == 9){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("ROPE")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "ROPE"); currVal = global.keyRopeVal;}else if (status == 10){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("FLARE")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "FLARE"); currVal = global.keyFlareVal;}else if (status == 11){ draw_set_font(global.myFont); draw_set_color(c_white); strLen = string_length("PURCHASE")*16; n = 160 - strLen; n = ceil(n / 2); draw_text(n, 40, "PURCHASE"); currVal = global.keyPayVal;}draw_set_font(global.myFontSmall);switch (currVal){ case vk_up: { draw_text(80, 104, "UP ARR"); break; } case vk_down: { draw_text(80, 104, "DOWN ARR"); break; } case vk_left: { draw_text(80, 104, "LEFT ARR"); break; } case vk_right: { draw_text(80, 104, "RIGHT ARR"); break; } case vk_shift: { draw_text(80, 104, "SHIFT"); break; } case vk_control: { draw_text(80, 104, "CTRL"); break; } case vk_alt: { draw_text(80, 104, "ALT"); break; } case vk_space: { draw_text(80, 104, "SPACE"); break; } case vk_enter: { draw_text(80, 104, "ENTER"); break; } case ord("A"): { draw_text(80, 104, "A"); break; } case ord("B"): { draw_text(80, 104, "B"); break; } case ord("C"): { draw_text(80, 104, "C"); break; } case ord("D"): { draw_text(80, 104, "D"); break; } case ord("E"): { draw_text(80, 104, "E"); break; } case ord("F"): { draw_text(80, 104, "F"); break; } case ord("G"): { draw_text(80, 104, "G"); break; } case ord("H"): { draw_text(80, 104, "H"); break; } case ord("I"): { draw_text(80, 104, "I"); break; } case ord("J"): { draw_text(80, 104, "J"); break; } case ord("K"): { draw_text(80, 104, "K"); break; } case ord("L"): { draw_text(80, 104, "L"); break; } case ord("M"): { draw_text(80, 104, "M"); break; } case ord("N"): { draw_text(80, 104, "N"); break; } case ord("O"): { draw_text(80, 104, "O"); break; } case ord("P"): { draw_text(80, 104, "P"); break; } case ord("Q"): { draw_text(80, 104, "Q"); break; } case ord("R"): { draw_text(80, 104, "R"); break; } case ord("S"): { draw_text(80, 104, "S"); break; } case ord("T"): { draw_text(80, 104, "T"); break; } case ord("U"): { draw_text(80, 104, "U"); break; } case ord("V"): { draw_text(80, 104, "V"); break; } case ord("W"): { draw_text(80, 104, "W"); break; } case ord("X"): { draw_text(80, 104, "X"); break; } case ord("Y"): { draw_text(80, 104, "Y"); break; } case ord("Z"): { draw_text(80, 104, "Z"); break; } default: { draw_text(80, 104, "KEY " + string(currVal)); break; }}