diff options
| author | Amir Rajan <[email protected]> | 2020-09-11 02:02:01 -0500 |
|---|---|---|
| committer | Amir Rajan <[email protected]> | 2020-09-11 02:02:57 -0500 |
| commit | 33ec37b141e896b47ed642923fd33b0c658ae9fb (patch) | |
| tree | a40d3e5d41beeb06508200078f6f26b0ee57d6a4 /samples/02_input_basics | |
| parent | 958cf43779d2bf528869e80511c4c4f2a433b2db (diff) | |
| download | dragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.tar.gz dragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.zip | |
synced samples
Diffstat (limited to 'samples/02_input_basics')
15 files changed, 4275 insertions, 0 deletions
diff --git a/samples/02_input_basics/01_keyboard/app/main.rb b/samples/02_input_basics/01_keyboard/app/main.rb new file mode 100644 index 0000000..ee5c8cf --- /dev/null +++ b/samples/02_input_basics/01_keyboard/app/main.rb @@ -0,0 +1,170 @@ +=begin + +APIs listing that haven't been encountered in a previous sample apps: + +- args.inputs.keyboard.key_up.KEY: The value of the properties will be set + to the frame that the key_up event occurred (the frame correlates + to args.state.tick_count). Otherwise the value will be nil. For a + full listing of keys, take a look at mygame/documentation/06-keyboard.md. +- args.state.PROPERTY: The state property on args is a dynamic + structure. You can define ANY property here with ANY type of + arbitrary nesting. Properties defined on args.state will be retained + across frames. If you attempt access a property that doesn't exist + on args.state, it will simply return nil (no exception will be thrown). + +=end + +# Along with outputs, inputs are also an essential part of video game development +# DragonRuby can take input from keyboards, mouse, and controllers. +# This sample app will cover keyboard input. + +# args.inputs.keyboard.key_up.a will check to see if the a key has been pressed +# This will work with the other keys as well + + +def tick args + tick_instructions args, "Sample app shows how keyboard events are registered and accessed.", 360 + # Notice how small_font accounts for all the remaining parameters + args.outputs.labels << [460, row_to_px(args, 0), "Current game time: #{args.state.tick_count}", small_font] + args.outputs.labels << [460, row_to_px(args, 2), "Keyboard input: args.inputs.keyboard.key_up.h", small_font] + args.outputs.labels << [460, row_to_px(args, 3), "Press \"h\" on the keyboard.", small_font] + + # Input on a specifc key can be found through args.inputs.keyboard.key_up followed by the key + if args.inputs.keyboard.key_up.h + args.state.h_pressed_at = args.state.tick_count + end + + # This code simplifies to if args.state.h_pressed_at has not been initialized, set it to false + args.state.h_pressed_at ||= false + + if args.state.h_pressed_at + args.outputs.labels << [460, row_to_px(args, 4), "\"h\" was pressed at time: #{args.state.h_pressed_at}", small_font] + else + args.outputs.labels << [460, row_to_px(args, 4), "\"h\" has never been pressed.", small_font] + end + + tick_help_text args +end + +def small_font + # This method provides some values for the construction of labels + # Specifically, Size, Alignment, & RGBA + # This makes it so that custom parameters don't have to be repeatedly typed. + # Additionally "small_font" provides programmers with more information than some numbers + [-2, 0, 0, 0, 0, 255] +end + +def row_to_px args, row_number + # This takes a row_number and converts it to pixels DragonRuby understands. + # Row 0 starts 5 units below the top of the grid + # Each row afterward is 20 units lower + args.grid.top.shift_down(5).shift_down(20 * row_number) +end + +# Don't worry about understanding the code within this method just yet. +# This method shows you the help text within the game. +def tick_help_text args + return unless args.state.h_pressed_at + + args.state.key_value_history ||= {} + args.state.key_down_value_history ||= {} + args.state.key_held_value_history ||= {} + args.state.key_up_value_history ||= {} + + if (args.inputs.keyboard.key_down.truthy_keys.length > 0 || + args.inputs.keyboard.key_held.truthy_keys.length > 0 || + args.inputs.keyboard.key_up.truthy_keys.length > 0) + args.state.help_available = true + args.state.no_activity_debounce = nil + else + args.state.no_activity_debounce ||= 5.seconds + args.state.no_activity_debounce -= 1 + if args.state.no_activity_debounce <= 0 + args.state.help_available = false + args.state.key_value_history = {} + args.state.key_down_value_history = {} + args.state.key_held_value_history = {} + args.state.key_up_value_history = {} + end + end + + args.outputs.labels << [10, row_to_px(args, 6), "Advanced Help:", small_font] + + if !args.state.help_available + args.outputs.labels << [10, row_to_px(args, 7), "Press a key and I'll show code to access the key and what value will be returned if you used the code.", small_font] + return + end + + args.outputs.labels << [10 , row_to_px(args, 7), "args.inputs.keyboard", small_font] + args.outputs.labels << [330, row_to_px(args, 7), "args.inputs.keyboard.key_down", small_font] + args.outputs.labels << [650, row_to_px(args, 7), "args.inputs.keyboard.key_held", small_font] + args.outputs.labels << [990, row_to_px(args, 7), "args.inputs.keyboard.key_up", small_font] + + fill_history args, :key_value_history, :down_or_held, nil + fill_history args, :key_down_value_history, :down, :key_down + fill_history args, :key_held_value_history, :held, :key_held + fill_history args, :key_up_value_history, :up, :key_up + + render_help_labels args, :key_value_history, :down_or_held, nil, 10 + render_help_labels args, :key_down_value_history, :down, :key_down, 330 + render_help_labels args, :key_held_value_history, :held, :key_held, 650 + render_help_labels args, :key_up_value_history, :up, :key_up, 990 +end + +def fill_history args, history_key, state_key, keyboard_method + fill_single_history args, history_key, state_key, keyboard_method, :raw_key + fill_single_history args, history_key, state_key, keyboard_method, :char + args.inputs.keyboard.keys[state_key].each do |key_name| + fill_single_history args, history_key, state_key, keyboard_method, key_name + end +end + +def fill_single_history args, history_key, state_key, keyboard_method, key_name + current_value = args.inputs.keyboard.send(key_name) + if keyboard_method + current_value = args.inputs.keyboard.send(keyboard_method).send(key_name) + end + args.state.as_hash[history_key][key_name] ||= [] + args.state.as_hash[history_key][key_name] << current_value + args.state.as_hash[history_key][key_name] = args.state.as_hash[history_key][key_name].reverse.uniq.take(3).reverse +end + +def render_help_labels args, history_key, state_key, keyboard_method, x + idx = 8 + args.outputs.labels << args.state + .as_hash[history_key] + .keys + .reverse + .map + .with_index do |k, i| + v = args.state.as_hash[history_key][k] + current_value = args.inputs.keyboard.send(k) + if keyboard_method + current_value = args.inputs.keyboard.send(keyboard_method).send(k) + end + idx += 2 + [ + [x, row_to_px(args, idx - 2), + " .#{k} is #{current_value || "nil"}", + small_font], + [x, row_to_px(args, idx - 1), + " was #{v}", + small_font] + ] + end +end + + +def tick_instructions args, text, y = 715 + return if args.state.key_event_occurred + if args.inputs.mouse.click || + args.inputs.keyboard.directional_vector || + args.inputs.keyboard.key_down.enter || + args.inputs.keyboard.key_down.escape + args.state.key_event_occurred = true + end + + args.outputs.debug << [0, y - 50, 1280, 60].solid + args.outputs.debug << [640, y, text, 1, 1, 255, 255, 255].label + args.outputs.debug << [640, y - 25, "(click to dismiss instructions)" , -2, 1, 255, 255, 255].label +end diff --git a/samples/02_input_basics/01_keyboard/license-for-sample.txt b/samples/02_input_basics/01_keyboard/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/02_input_basics/01_keyboard/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/02_input_basics/01_keyboard/replay.txt b/samples/02_input_basics/01_keyboard/replay.txt new file mode 100644 index 0000000..ac3ff2d --- /dev/null +++ b/samples/02_input_basics/01_keyboard/replay.txt @@ -0,0 +1,814 @@ +replay_version 2.0 +stopped_at 1283 +seed 100 +recorded_at Sun Sep 29 21:23:38 2019 +[:mouse_move, 39, 552, 2, 1, 54] +[:mouse_move, 87, 534, 2, 2, 55] +[:mouse_move, 96, 531, 2, 3, 56] +[:mouse_move, 115, 523, 2, 4, 57] +[:mouse_move, 122, 520, 2, 5, 58] +[:mouse_move, 136, 513, 2, 6, 59] +[:mouse_move, 143, 510, 2, 7, 60] +[:mouse_move, 147, 507, 2, 8, 61] +[:mouse_move, 168, 492, 2, 9, 62] +[:mouse_move, 181, 479, 2, 10, 63] +[:mouse_move, 233, 424, 2, 11, 64] +[:mouse_move, 259, 390, 2, 12, 65] +[:mouse_move, 286, 353, 2, 13, 66] +[:mouse_move, 326, 301, 2, 14, 67] +[:mouse_move, 335, 287, 2, 15, 68] +[:mouse_move, 368, 240, 2, 16, 69] +[:mouse_move, 377, 221, 2, 17, 70] +[:mouse_move, 395, 169, 2, 18, 71] +[:mouse_move, 401, 127, 2, 19, 72] +[:mouse_move, 403, 122, 2, 20, 86] +[:mouse_move, 422, 96, 2, 21, 87] +[:mouse_move, 431, 84, 2, 22, 88] +[:mouse_move, 439, 73, 2, 23, 89] +[:mouse_move, 450, 57, 2, 24, 90] +[:mouse_move, 454, 53, 2, 25, 91] +[:mouse_move, 462, 43, 2, 26, 92] +[:mouse_move, 465, 39, 2, 27, 93] +[:mouse_move, 468, 35, 2, 28, 94] +[:mouse_move, 469, 35, 2, 29, 95] +[:mouse_move, 470, 34, 2, 30, 96] +[:mouse_move, 469, 34, 2, 31, 100] +[:mouse_move, 467, 34, 2, 32, 101] +[:mouse_move, 459, 37, 2, 33, 102] +[:mouse_move, 455, 37, 2, 34, 103] +[:mouse_move, 449, 38, 2, 35, 104] +[:mouse_move, 444, 38, 2, 36, 105] +[:mouse_move, 440, 37, 2, 37, 106] +[:mouse_move, 440, 35, 2, 38, 107] +[:mouse_move, 439, 31, 2, 39, 108] +[:mouse_move, 439, 29, 2, 40, 109] +[:mouse_move, 440, 24, 2, 41, 110] +[:mouse_move, 441, 23, 2, 42, 111] +[:mouse_move, 445, 20, 2, 43, 112] +[:mouse_move, 446, 19, 2, 44, 113] +[:mouse_move, 451, 18, 2, 45, 114] +[:mouse_move, 453, 18, 2, 46, 115] +[:mouse_move, 456, 18, 2, 47, 116] +[:mouse_move, 463, 18, 2, 48, 117] +[:mouse_move, 466, 18, 2, 49, 118] +[:mouse_move, 474, 18, 2, 50, 119] +[:mouse_move, 478, 18, 2, 51, 120] +[:mouse_move, 489, 18, 2, 52, 121] +[:mouse_move, 495, 20, 2, 53, 122] +[:mouse_move, 508, 22, 2, 54, 123] +[:mouse_move, 513, 23, 2, 55, 124] +[:mouse_move, 525, 24, 2, 56, 125] +[:mouse_move, 528, 24, 2, 57, 126] +[:mouse_move, 539, 25, 2, 58, 127] +[:mouse_move, 541, 25, 2, 59, 128] +[:mouse_move, 547, 25, 2, 60, 129] +[:mouse_move, 550, 25, 2, 61, 130] +[:mouse_move, 555, 25, 2, 62, 131] +[:mouse_move, 557, 25, 2, 63, 132] +[:mouse_move, 564, 25, 2, 64, 133] +[:mouse_move, 567, 25, 2, 65, 134] +[:mouse_move, 571, 25, 2, 66, 135] +[:mouse_move, 574, 25, 2, 67, 136] +[:mouse_move, 581, 26, 2, 68, 137] +[:mouse_move, 585, 27, 2, 69, 138] +[:mouse_move, 592, 28, 2, 70, 139] +[:mouse_move, 596, 28, 2, 71, 140] +[:mouse_move, 602, 29, 2, 72, 141] +[:mouse_move, 605, 30, 2, 73, 142] +[:mouse_move, 610, 30, 2, 74, 143] +[:mouse_move, 617, 30, 2, 75, 144] +[:mouse_move, 619, 30, 2, 76, 145] +[:mouse_move, 628, 30, 2, 77, 146] +[:mouse_move, 629, 30, 2, 78, 147] +[:mouse_move, 634, 30, 2, 79, 148] +[:mouse_move, 636, 29, 2, 80, 149] +[:mouse_move, 639, 29, 2, 81, 150] +[:mouse_move, 640, 28, 2, 82, 151] +[:mouse_move, 642, 28, 2, 83, 152] +[:mouse_move, 643, 28, 2, 84, 153] +[:mouse_move, 645, 27, 2, 85, 154] +[:mouse_move, 646, 27, 2, 86, 155] +[:mouse_move, 647, 26, 2, 87, 156] +[:mouse_move, 648, 26, 2, 88, 158] +[:mouse_move, 649, 26, 2, 89, 160] +[:mouse_move, 648, 26, 2, 90, 192] +[:mouse_move, 642, 26, 2, 91, 193] +[:mouse_move, 638, 26, 2, 92, 194] +[:mouse_move, 628, 27, 2, 93, 195] +[:mouse_move, 623, 28, 2, 94, 196] +[:mouse_move, 618, 29, 2, 95, 197] +[:mouse_move, 607, 31, 2, 96, 198] +[:mouse_move, 600, 34, 2, 97, 199] +[:mouse_move, 591, 35, 2, 98, 200] +[:mouse_move, 586, 37, 2, 99, 201] +[:mouse_move, 577, 39, 2, 100, 202] +[:mouse_move, 574, 39, 2, 101, 203] +[:mouse_move, 564, 41, 2, 102, 204] +[:mouse_move, 560, 42, 2, 103, 205] +[:mouse_move, 552, 43, 2, 104, 206] +[:mouse_move, 548, 43, 2, 105, 207] +[:mouse_move, 538, 44, 2, 106, 208] +[:mouse_move, 533, 44, 2, 107, 209] +[:mouse_move, 525, 44, 2, 108, 210] +[:mouse_move, 520, 44, 2, 109, 211] +[:mouse_move, 505, 44, 2, 110, 212] +[:mouse_move, 501, 45, 2, 111, 213] +[:mouse_move, 489, 46, 2, 112, 214] +[:mouse_move, 487, 46, 2, 113, 215] +[:mouse_move, 480, 48, 2, 114, 216] +[:mouse_move, 477, 48, 2, 115, 217] +[:mouse_move, 471, 51, 2, 116, 218] +[:mouse_move, 467, 53, 2, 117, 219] +[:mouse_move, 462, 55, 2, 118, 220] +[:mouse_move, 459, 57, 2, 119, 221] +[:mouse_move, 456, 59, 2, 120, 222] +[:mouse_move, 455, 60, 2, 121, 223] +[:mouse_move, 454, 61, 2, 122, 224] +[:mouse_move, 453, 61, 2, 123, 225] +[:mouse_move, 457, 61, 2, 124, 242] +[:mouse_move, 465, 63, 2, 125, 243] +[:mouse_move, 471, 64, 2, 126, 244] +[:mouse_move, 486, 67, 2, 127, 245] +[:mouse_move, 498, 68, 2, 128, 246] +[:mouse_move, 523, 70, 2, 129, 247] +[:mouse_move, 535, 70, 2, 130, 248] +[:mouse_move, 551, 70, 2, 131, 249] +[:mouse_move, 560, 70, 2, 132, 250] +[:mouse_move, 571, 70, 2, 133, 251] +[:mouse_move, 578, 70, 2, 134, 252] +[:mouse_move, 583, 70, 2, 135, 253] +[:mouse_move, 588, 70, 2, 136, 254] +[:mouse_move, 590, 70, 2, 137, 255] +[:mouse_move, 592, 70, 2, 138, 256] +[:mouse_move, 593, 70, 2, 139, 257] +[:mouse_move, 595, 70, 2, 140, 258] +[:mouse_move, 596, 70, 2, 141, 259] +[:mouse_move, 597, 70, 2, 142, 260] +[:mouse_move, 598, 70, 2, 143, 261] +[:mouse_move, 600, 70, 2, 144, 262] +[:mouse_move, 601, 70, 2, 145, 263] +[:mouse_move, 603, 70, 2, 146, 264] +[:mouse_move, 605, 70, 2, 147, 265] +[:mouse_move, 608, 70, 2, 148, 266] +[:mouse_move, 609, 70, 2, 149, 267] +[:mouse_move, 613, 70, 2, 150, 268] +[:mouse_move, 614, 70, 2, 151, 269] +[:mouse_move, 616, 69, 2, 152, 270] +[:mouse_move, 617, 69, 2, 153, 271] +[:mouse_move, 619, 68, 2, 154, 272] +[:mouse_move, 620, 68, 2, 155, 273] +[:mouse_move, 621, 68, 2, 156, 274] +[:mouse_move, 622, 67, 2, 157, 275] +[:mouse_move, 623, 67, 2, 158, 276] +[:mouse_move, 624, 67, 2, 159, 278] +[:mouse_move, 625, 67, 2, 160, 279] +[:mouse_move, 626, 66, 2, 161, 280] +[:mouse_move, 628, 66, 2, 162, 281] +[:mouse_move, 629, 66, 2, 163, 282] +[:mouse_move, 631, 66, 2, 164, 283] +[:mouse_move, 633, 66, 2, 165, 284] +[:mouse_move, 638, 65, 2, 166, 285] +[:mouse_move, 640, 65, 2, 167, 286] +[:mouse_move, 646, 65, 2, 168, 287] +[:mouse_move, 648, 65, 2, 169, 288] +[:mouse_move, 656, 65, 2, 170, 289] +[:mouse_move, 659, 65, 2, 171, 290] +[:mouse_move, 666, 64, 2, 172, 291] +[:mouse_move, 668, 64, 2, 173, 292] +[:mouse_move, 675, 63, 2, 174, 293] +[:mouse_move, 677, 63, 2, 175, 294] +[:mouse_move, 682, 63, 2, 176, 295] +[:mouse_move, 684, 62, 2, 177, 296] +[:mouse_move, 688, 62, 2, 178, 297] +[:mouse_move, 690, 61, 2, 179, 298] +[:mouse_move, 693, 61, 2, 180, 299] +[:mouse_move, 696, 60, 2, 181, 300] +[:mouse_move, 699, 59, 2, 182, 301] +[:mouse_move, 701, 58, 2, 183, 302] +[:mouse_move, 706, 58, 2, 184, 303] +[:mouse_move, 708, 57, 2, 185, 304] +[:mouse_move, 715, 56, 2, 186, 305] +[:mouse_move, 718, 56, 2, 187, 306] +[:mouse_move, 721, 56, 2, 188, 307] +[:mouse_move, 726, 54, 2, 189, 308] +[:mouse_move, 731, 53, 2, 190, 309] +[:mouse_move, 732, 53, 2, 191, 325] +[:mouse_move, 736, 54, 2, 192, 326] +[:mouse_move, 739, 55, 2, 193, 327] +[:mouse_move, 745, 57, 2, 194, 328] +[:mouse_move, 747, 58, 2, 195, 329] +[:mouse_move, 752, 59, 2, 196, 330] +[:mouse_move, 757, 61, 2, 197, 331] +[:mouse_move, 760, 61, 2, 198, 332] +[:mouse_move, 767, 63, 2, 199, 333] +[:mouse_move, 771, 63, 2, 200, 334] +[:mouse_move, 775, 63, 2, 201, 335] +[:mouse_move, 778, 63, 2, 202, 336] +[:mouse_move, 781, 64, 2, 203, 337] +[:mouse_move, 782, 64, 2, 204, 338] +[:mouse_move, 783, 64, 2, 205, 339] +[:mouse_move, 784, 64, 2, 206, 340] +[:mouse_move, 784, 65, 2, 207, 341] +[:mouse_move, 785, 65, 2, 208, 342] +[:mouse_move, 787, 65, 2, 209, 343] +[:mouse_move, 789, 66, 2, 210, 344] +[:mouse_move, 795, 67, 2, 211, 345] +[:mouse_move, 797, 67, 2, 212, 346] +[:mouse_move, 803, 67, 2, 213, 347] +[:mouse_move, 805, 67, 2, 214, 348] +[:mouse_move, 810, 67, 2, 215, 349] +[:mouse_move, 811, 66, 2, 216, 350] +[:mouse_move, 814, 64, 2, 217, 351] +[:mouse_move, 814, 63, 2, 218, 352] +[:mouse_move, 815, 61, 2, 219, 353] +[:mouse_move, 816, 58, 2, 220, 354] +[:mouse_move, 817, 55, 2, 221, 355] +[:mouse_move, 817, 53, 2, 222, 356] +[:mouse_move, 818, 49, 2, 223, 357] +[:mouse_move, 818, 47, 2, 224, 358] +[:mouse_move, 818, 46, 2, 225, 359] +[:mouse_move, 817, 42, 2, 226, 360] +[:mouse_move, 815, 40, 2, 227, 361] +[:mouse_move, 811, 38, 2, 228, 362] +[:mouse_move, 805, 35, 2, 229, 363] +[:mouse_move, 803, 35, 2, 230, 364] +[:mouse_move, 798, 34, 2, 231, 365] +[:mouse_move, 796, 34, 2, 232, 366] +[:mouse_move, 794, 34, 2, 233, 367] +[:mouse_move, 788, 34, 2, 234, 368] +[:mouse_move, 785, 34, 2, 235, 369] +[:mouse_move, 779, 34, 2, 236, 370] +[:mouse_move, 778, 35, 2, 237, 371] +[:mouse_move, 772, 37, 2, 238, 372] +[:mouse_move, 771, 38, 2, 239, 373] +[:mouse_move, 768, 41, 2, 240, 374] +[:mouse_move, 767, 42, 2, 241, 375] +[:mouse_move, 764, 46, 2, 242, 376] +[:mouse_move, 764, 48, 2, 243, 377] +[:mouse_move, 762, 53, 2, 244, 378] +[:mouse_move, 762, 55, 2, 245, 379] +[:mouse_move, 762, 59, 2, 246, 380] +[:mouse_move, 762, 62, 2, 247, 381] +[:mouse_move, 762, 64, 2, 248, 382] +[:mouse_move, 762, 66, 2, 249, 383] +[:mouse_move, 762, 68, 2, 250, 384] +[:mouse_move, 764, 69, 2, 251, 385] +[:mouse_move, 766, 71, 2, 252, 386] +[:mouse_move, 773, 73, 2, 253, 387] +[:mouse_move, 776, 74, 2, 254, 388] +[:mouse_move, 784, 76, 2, 255, 389] +[:mouse_move, 793, 76, 2, 256, 390] +[:mouse_move, 797, 76, 2, 257, 391] +[:mouse_move, 800, 75, 2, 258, 392] +[:mouse_move, 806, 71, 2, 259, 393] +[:mouse_move, 809, 68, 2, 260, 394] +[:mouse_move, 811, 66, 2, 261, 395] +[:mouse_move, 814, 63, 2, 262, 396] +[:mouse_move, 816, 60, 2, 263, 397] +[:mouse_move, 817, 57, 2, 264, 398] +[:mouse_move, 819, 51, 2, 265, 399] +[:mouse_move, 819, 48, 2, 266, 400] +[:mouse_move, 818, 42, 2, 267, 401] +[:mouse_move, 817, 39, 2, 268, 402] +[:mouse_move, 812, 35, 2, 269, 403] +[:mouse_move, 808, 33, 2, 270, 404] +[:mouse_move, 800, 30, 2, 271, 405] +[:mouse_move, 795, 29, 2, 272, 406] +[:mouse_move, 784, 29, 2, 273, 407] +[:mouse_move, 778, 29, 2, 274, 408] +[:mouse_move, 767, 29, 2, 275, 409] +[:mouse_move, 761, 29, 2, 276, 410] +[:mouse_move, 752, 34, 2, 277, 411] +[:mouse_move, 747, 36, 2, 278, 412] +[:mouse_move, 743, 40, 2, 279, 413] +[:mouse_move, 741, 43, 2, 280, 414] +[:mouse_move, 740, 45, 2, 281, 415] +[:mouse_move, 738, 49, 2, 282, 416] +[:mouse_move, 738, 53, 2, 283, 417] +[:mouse_move, 743, 58, 2, 284, 418] +[:mouse_move, 747, 60, 2, 285, 419] +[:mouse_move, 756, 62, 2, 286, 420] +[:mouse_move, 767, 64, 2, 287, 421] +[:mouse_move, 773, 64, 2, 288, 422] +[:mouse_move, 785, 64, 2, 289, 423] +[:mouse_move, 790, 64, 2, 290, 424] +[:mouse_move, 792, 63, 2, 291, 425] +[:mouse_move, 798, 61, 2, 292, 426] +[:mouse_move, 800, 61, 2, 293, 427] +[:mouse_move, 802, 61, 2, 294, 428] +[:mouse_move, 802, 60, 2, 295, 429] +[:mouse_move, 803, 60, 2, 296, 440] +[:mouse_move, 808, 60, 2, 297, 441] +[:mouse_move, 814, 60, 2, 298, 442] +[:mouse_move, 823, 60, 2, 299, 443] +[:mouse_move, 832, 59, 2, 300, 444] +[:mouse_move, 836, 59, 2, 301, 445] +[:mouse_move, 839, 59, 2, 302, 446] +[:mouse_move, 844, 58, 2, 303, 447] +[:mouse_move, 845, 58, 2, 304, 449] +[:mouse_move, 846, 58, 2, 305, 450] +[:mouse_move, 846, 61, 2, 306, 470] +[:mouse_move, 846, 64, 2, 307, 471] +[:mouse_move, 846, 70, 2, 308, 472] +[:mouse_move, 844, 73, 2, 309, 473] +[:mouse_move, 835, 83, 2, 310, 474] +[:mouse_move, 827, 89, 2, 311, 475] +[:mouse_move, 796, 103, 2, 312, 476] +[:mouse_move, 778, 107, 2, 313, 477] +[:mouse_move, 733, 113, 2, 314, 478] +[:mouse_move, 710, 113, 2, 315, 479] +[:mouse_move, 675, 114, 2, 316, 480] +[:mouse_move, 655, 114, 2, 317, 481] +[:mouse_move, 619, 108, 2, 318, 482] +[:mouse_move, 613, 107, 2, 319, 483] +[:mouse_move, 591, 100, 2, 320, 484] +[:mouse_move, 582, 97, 2, 321, 485] +[:mouse_move, 567, 93, 2, 322, 486] +[:mouse_move, 560, 92, 2, 323, 487] +[:mouse_move, 546, 89, 2, 324, 488] +[:mouse_move, 538, 88, 2, 325, 489] +[:mouse_move, 525, 86, 2, 326, 490] +[:mouse_move, 519, 86, 2, 327, 491] +[:mouse_move, 510, 85, 2, 328, 492] +[:mouse_move, 503, 85, 2, 329, 493] +[:mouse_move, 495, 85, 2, 330, 494] +[:mouse_move, 492, 85, 2, 331, 495] +[:mouse_move, 488, 85, 2, 332, 496] +[:mouse_move, 479, 85, 2, 333, 497] +[:mouse_move, 473, 85, 2, 334, 498] +[:mouse_move, 466, 85, 2, 335, 499] +[:mouse_move, 462, 85, 2, 336, 500] +[:mouse_move, 457, 85, 2, 337, 501] +[:mouse_move, 455, 85, 2, 338, 502] +[:mouse_move, 453, 85, 2, 339, 503] +[:mouse_move, 452, 85, 2, 340, 504] +[:mouse_move, 451, 85, 2, 341, 506] +[:mouse_move, 454, 85, 2, 342, 513] +[:mouse_move, 457, 85, 2, 343, 514] +[:mouse_move, 461, 85, 2, 344, 515] +[:mouse_move, 465, 85, 2, 345, 516] +[:mouse_move, 471, 85, 2, 346, 517] +[:mouse_move, 473, 85, 2, 347, 518] +[:mouse_move, 479, 85, 2, 348, 519] +[:mouse_move, 484, 85, 2, 349, 520] +[:mouse_move, 488, 85, 2, 350, 521] +[:mouse_move, 490, 85, 2, 351, 522] +[:mouse_move, 492, 85, 2, 352, 523] +[:mouse_move, 497, 85, 2, 353, 524] +[:mouse_move, 500, 84, 2, 354, 525] +[:mouse_move, 505, 84, 2, 355, 526] +[:mouse_move, 509, 84, 2, 356, 527] +[:mouse_move, 515, 84, 2, 357, 528] +[:mouse_move, 518, 84, 2, 358, 529] +[:mouse_move, 525, 83, 2, 359, 530] +[:mouse_move, 529, 83, 2, 360, 531] +[:mouse_move, 537, 82, 2, 361, 532] +[:mouse_move, 541, 82, 2, 362, 533] +[:mouse_move, 550, 81, 2, 363, 534] +[:mouse_move, 554, 80, 2, 364, 535] +[:mouse_move, 562, 79, 2, 365, 536] +[:mouse_move, 566, 79, 2, 366, 537] +[:mouse_move, 574, 78, 2, 367, 538] +[:mouse_move, 577, 78, 2, 368, 539] +[:mouse_move, 585, 77, 2, 369, 540] +[:mouse_move, 587, 77, 2, 370, 541] +[:mouse_move, 593, 77, 2, 371, 542] +[:mouse_move, 596, 77, 2, 372, 543] +[:mouse_move, 600, 77, 2, 373, 544] +[:mouse_move, 604, 77, 2, 374, 545] +[:mouse_move, 608, 77, 2, 375, 546] +[:mouse_move, 610, 77, 2, 376, 547] +[:mouse_move, 616, 77, 2, 377, 548] +[:mouse_move, 619, 77, 2, 378, 549] +[:mouse_move, 621, 78, 2, 379, 550] +[:mouse_move, 628, 80, 2, 380, 551] +[:mouse_move, 631, 80, 2, 381, 552] +[:mouse_move, 637, 82, 2, 382, 553] +[:mouse_move, 641, 83, 2, 383, 554] +[:mouse_move, 648, 84, 2, 384, 555] +[:mouse_move, 651, 84, 2, 385, 556] +[:mouse_move, 657, 84, 2, 386, 557] +[:mouse_move, 660, 84, 2, 387, 558] +[:mouse_move, 665, 84, 2, 388, 559] +[:mouse_move, 668, 84, 2, 389, 560] +[:mouse_move, 671, 83, 2, 390, 561] +[:mouse_move, 673, 83, 2, 391, 562] +[:mouse_move, 674, 83, 2, 392, 563] +[:mouse_move, 675, 83, 2, 393, 564] +[:mouse_move, 676, 83, 2, 394, 566] +[:mouse_move, 674, 83, 2, 395, 587] +[:mouse_move, 667, 83, 2, 396, 588] +[:mouse_move, 661, 84, 2, 397, 589] +[:mouse_move, 642, 86, 2, 398, 590] +[:mouse_move, 629, 87, 2, 399, 591] +[:mouse_move, 598, 89, 2, 400, 592] +[:mouse_move, 582, 90, 2, 401, 593] +[:mouse_move, 553, 90, 2, 402, 594] +[:mouse_move, 547, 90, 2, 403, 595] +[:mouse_move, 529, 91, 2, 404, 596] +[:mouse_move, 521, 91, 2, 405, 597] +[:mouse_move, 514, 91, 2, 406, 598] +[:mouse_move, 509, 92, 2, 407, 599] +[:mouse_move, 501, 92, 2, 408, 600] +[:mouse_move, 499, 93, 2, 409, 601] +[:mouse_move, 492, 93, 2, 410, 602] +[:mouse_move, 489, 94, 2, 411, 603] +[:mouse_move, 485, 94, 2, 412, 604] +[:mouse_move, 474, 95, 2, 413, 605] +[:mouse_move, 469, 96, 2, 414, 606] +[:mouse_move, 462, 96, 2, 415, 607] +[:mouse_move, 459, 96, 2, 416, 608] +[:mouse_move, 456, 96, 2, 417, 609] +[:mouse_move, 454, 96, 2, 418, 610] +[:mouse_move, 453, 96, 2, 419, 611] +[:mouse_move, 453, 97, 2, 420, 615] +[:mouse_move, 455, 98, 2, 421, 617] +[:mouse_move, 457, 99, 2, 422, 618] +[:mouse_move, 465, 102, 2, 423, 619] +[:mouse_move, 470, 104, 2, 424, 620] +[:mouse_move, 481, 106, 2, 425, 621] +[:mouse_move, 487, 107, 2, 426, 622] +[:mouse_move, 499, 109, 2, 427, 623] +[:mouse_move, 504, 109, 2, 428, 624] +[:mouse_move, 513, 110, 2, 429, 625] +[:mouse_move, 518, 110, 2, 430, 626] +[:mouse_move, 527, 110, 2, 431, 627] +[:mouse_move, 531, 110, 2, 432, 628] +[:mouse_move, 538, 108, 2, 433, 629] +[:mouse_move, 542, 108, 2, 434, 630] +[:mouse_move, 548, 106, 2, 435, 631] +[:mouse_move, 549, 106, 2, 436, 632] +[:mouse_move, 554, 105, 2, 437, 633] +[:mouse_move, 557, 104, 2, 438, 634] +[:mouse_move, 560, 104, 2, 439, 635] +[:mouse_move, 565, 103, 2, 440, 636] +[:mouse_move, 568, 103, 2, 441, 637] +[:mouse_move, 573, 102, 2, 442, 638] +[:mouse_move, 575, 102, 2, 443, 639] +[:mouse_move, 581, 102, 2, 444, 640] +[:mouse_move, 585, 102, 2, 445, 641] +[:mouse_move, 592, 102, 2, 446, 642] +[:mouse_move, 596, 102, 2, 447, 643] +[:mouse_move, 604, 102, 2, 448, 644] +[:mouse_move, 608, 102, 2, 449, 645] +[:mouse_move, 617, 102, 2, 450, 646] +[:mouse_move, 622, 102, 2, 451, 647] +[:mouse_move, 634, 102, 2, 452, 648] +[:mouse_move, 641, 102, 2, 453, 649] +[:mouse_move, 655, 102, 2, 454, 650] +[:mouse_move, 668, 102, 2, 455, 651] +[:mouse_move, 680, 102, 2, 456, 652] +[:mouse_move, 687, 102, 2, 457, 653] +[:mouse_move, 699, 102, 2, 458, 654] +[:mouse_move, 705, 102, 2, 459, 655] +[:mouse_move, 712, 102, 2, 460, 656] +[:mouse_move, 715, 102, 2, 461, 657] +[:mouse_move, 718, 102, 2, 462, 658] +[:mouse_move, 719, 102, 2, 463, 660] +[:mouse_move, 718, 102, 2, 464, 663] +[:mouse_move, 717, 102, 2, 465, 664] +[:mouse_move, 713, 102, 2, 466, 665] +[:mouse_move, 709, 101, 2, 467, 666] +[:mouse_move, 693, 100, 2, 468, 667] +[:mouse_move, 673, 99, 2, 469, 668] +[:mouse_move, 640, 99, 2, 470, 669] +[:mouse_move, 622, 99, 2, 471, 670] +[:mouse_move, 585, 99, 2, 472, 671] +[:mouse_move, 578, 99, 2, 473, 672] +[:mouse_move, 554, 100, 2, 474, 673] +[:mouse_move, 550, 100, 2, 475, 674] +[:mouse_move, 538, 100, 2, 476, 675] +[:mouse_move, 535, 100, 2, 477, 676] +[:mouse_move, 532, 100, 2, 478, 677] +[:mouse_move, 531, 100, 2, 479, 678] +[:mouse_move, 530, 100, 2, 480, 679] +[:mouse_move, 529, 100, 2, 481, 681] +[:mouse_move, 530, 100, 2, 482, 686] +[:mouse_move, 532, 100, 2, 483, 687] +[:mouse_move, 542, 104, 2, 484, 688] +[:mouse_move, 546, 104, 2, 485, 689] +[:mouse_move, 560, 107, 2, 486, 690] +[:mouse_move, 567, 107, 2, 487, 691] +[:mouse_move, 581, 107, 2, 488, 692] +[:mouse_move, 587, 107, 2, 489, 693] +[:mouse_move, 593, 103, 2, 490, 694] +[:mouse_move, 595, 101, 2, 491, 695] +[:mouse_move, 598, 96, 2, 492, 696] +[:mouse_move, 599, 93, 2, 493, 697] +[:mouse_move, 599, 88, 2, 494, 698] +[:mouse_move, 598, 86, 2, 495, 699] +[:mouse_move, 589, 78, 2, 496, 700] +[:mouse_move, 583, 75, 2, 497, 701] +[:mouse_move, 570, 70, 2, 498, 702] +[:mouse_move, 563, 68, 2, 499, 703] +[:mouse_move, 546, 66, 2, 500, 704] +[:mouse_move, 540, 65, 2, 501, 705] +[:mouse_move, 526, 65, 2, 502, 706] +[:mouse_move, 521, 65, 2, 503, 707] +[:mouse_move, 513, 66, 2, 504, 708] +[:mouse_move, 510, 68, 2, 505, 709] +[:mouse_move, 504, 71, 2, 506, 710] +[:mouse_move, 502, 72, 2, 507, 711] +[:mouse_move, 499, 76, 2, 508, 712] +[:mouse_move, 498, 78, 2, 509, 713] +[:mouse_move, 498, 81, 2, 510, 714] +[:mouse_move, 498, 87, 2, 511, 715] +[:mouse_move, 498, 90, 2, 512, 716] +[:mouse_move, 500, 97, 2, 513, 717] +[:mouse_move, 500, 98, 2, 514, 718] +[:mouse_move, 506, 105, 2, 515, 719] +[:mouse_move, 512, 110, 2, 516, 720] +[:mouse_move, 523, 115, 2, 517, 721] +[:mouse_move, 531, 118, 2, 518, 722] +[:mouse_move, 550, 121, 2, 519, 723] +[:mouse_move, 555, 121, 2, 520, 724] +[:mouse_move, 571, 121, 2, 521, 725] +[:mouse_move, 577, 119, 2, 522, 726] +[:mouse_move, 586, 113, 2, 523, 727] +[:mouse_move, 590, 110, 2, 524, 728] +[:mouse_move, 595, 101, 2, 525, 729] +[:mouse_move, 598, 94, 2, 526, 730] +[:mouse_move, 599, 83, 2, 527, 731] +[:mouse_move, 599, 80, 2, 528, 732] +[:mouse_move, 599, 69, 2, 529, 733] +[:mouse_move, 597, 66, 2, 530, 734] +[:mouse_move, 593, 62, 2, 531, 735] +[:mouse_move, 581, 60, 2, 532, 736] +[:mouse_move, 561, 59, 2, 533, 737] +[:mouse_move, 551, 59, 2, 534, 738] +[:mouse_move, 535, 59, 2, 535, 739] +[:mouse_move, 526, 60, 2, 536, 740] +[:mouse_move, 518, 62, 2, 537, 741] +[:mouse_move, 506, 65, 2, 538, 742] +[:mouse_move, 504, 67, 2, 539, 743] +[:mouse_move, 498, 70, 2, 540, 744] +[:mouse_move, 496, 72, 2, 541, 745] +[:mouse_move, 493, 77, 2, 542, 746] +[:mouse_move, 493, 79, 2, 543, 747] +[:mouse_move, 493, 86, 2, 544, 748] +[:mouse_move, 493, 88, 2, 545, 749] +[:mouse_move, 495, 96, 2, 546, 750] +[:mouse_move, 497, 98, 2, 547, 751] +[:mouse_move, 502, 104, 2, 548, 752] +[:mouse_move, 504, 106, 2, 549, 753] +[:mouse_move, 509, 110, 2, 550, 754] +[:mouse_move, 513, 112, 2, 551, 755] +[:mouse_move, 521, 116, 2, 552, 756] +[:mouse_move, 525, 118, 2, 553, 757] +[:mouse_move, 535, 120, 2, 554, 758] +[:mouse_move, 540, 121, 2, 555, 759] +[:mouse_move, 549, 122, 2, 556, 760] +[:mouse_move, 553, 122, 2, 557, 761] +[:mouse_move, 560, 121, 2, 558, 762] +[:mouse_move, 561, 120, 2, 559, 763] +[:mouse_move, 564, 119, 2, 560, 764] +[:mouse_move, 565, 118, 2, 561, 765] +[:mouse_move, 566, 118, 2, 562, 766] +[:key_down_raw, 104, 0, 2, 563, 817] +[:key_up_raw, 104, 0, 2, 564, 820] +[:mouse_move, 566, 115, 2, 565, 843] +[:mouse_move, 564, 113, 2, 566, 844] +[:mouse_move, 562, 110, 2, 567, 845] +[:mouse_move, 560, 107, 2, 568, 846] +[:mouse_move, 557, 104, 2, 569, 847] +[:mouse_move, 556, 103, 2, 570, 848] +[:mouse_move, 555, 102, 2, 571, 849] +[:mouse_move, 554, 101, 2, 572, 850] +[:mouse_move, 553, 101, 2, 573, 851] +[:mouse_move, 552, 100, 2, 574, 853] +[:mouse_move, 549, 99, 2, 575, 854] +[:mouse_move, 548, 99, 2, 576, 855] +[:mouse_move, 543, 98, 2, 577, 856] +[:mouse_move, 541, 98, 2, 578, 857] +[:mouse_move, 538, 98, 2, 579, 858] +[:mouse_move, 536, 98, 2, 580, 859] +[:mouse_move, 535, 98, 2, 581, 860] +[:mouse_move, 537, 99, 2, 582, 862] +[:mouse_move, 544, 101, 2, 583, 863] +[:mouse_move, 555, 105, 2, 584, 864] +[:mouse_move, 569, 108, 2, 585, 865] +[:mouse_move, 590, 112, 2, 586, 866] +[:mouse_move, 595, 112, 2, 587, 867] +[:mouse_move, 612, 114, 2, 588, 868] +[:mouse_move, 619, 115, 2, 589, 869] +[:mouse_move, 631, 115, 2, 590, 870] +[:mouse_move, 636, 115, 2, 591, 871] +[:mouse_move, 640, 115, 2, 592, 872] +[:mouse_move, 643, 115, 2, 593, 873] +[:mouse_move, 646, 115, 2, 594, 874] +[:mouse_move, 646, 114, 2, 595, 875] +[:mouse_move, 646, 113, 2, 596, 877] +[:mouse_move, 645, 113, 2, 597, 879] +[:mouse_move, 644, 112, 2, 598, 880] +[:mouse_move, 644, 111, 2, 599, 882] +[:mouse_move, 644, 110, 2, 600, 883] +[:mouse_move, 647, 110, 2, 601, 884] +[:mouse_move, 656, 110, 2, 602, 885] +[:mouse_move, 665, 110, 2, 603, 886] +[:mouse_move, 676, 109, 2, 604, 887] +[:mouse_move, 683, 108, 2, 605, 888] +[:mouse_move, 690, 106, 2, 606, 889] +[:mouse_move, 693, 105, 2, 607, 890] +[:mouse_move, 695, 104, 2, 608, 891] +[:mouse_move, 695, 103, 2, 609, 892] +[:mouse_move, 690, 103, 2, 610, 893] +[:mouse_move, 688, 103, 2, 611, 894] +[:mouse_move, 683, 103, 2, 612, 895] +[:mouse_move, 682, 103, 2, 613, 896] +[:mouse_move, 680, 103, 2, 614, 897] +[:mouse_move, 682, 103, 2, 615, 901] +[:mouse_move, 683, 103, 2, 616, 902] +[:mouse_move, 685, 103, 2, 617, 904] +[:mouse_move, 685, 102, 2, 618, 905] +[:mouse_move, 676, 102, 2, 619, 908] +[:mouse_move, 673, 102, 2, 620, 909] +[:mouse_move, 667, 102, 2, 621, 910] +[:mouse_move, 664, 102, 2, 622, 911] +[:mouse_move, 661, 102, 2, 623, 912] +[:mouse_move, 660, 102, 2, 624, 913] +[:mouse_move, 662, 102, 2, 625, 915] +[:mouse_move, 668, 102, 2, 626, 916] +[:mouse_move, 670, 102, 2, 627, 917] +[:mouse_move, 675, 102, 2, 628, 918] +[:mouse_move, 676, 102, 2, 629, 919] +[:mouse_move, 677, 102, 2, 630, 920] +[:mouse_move, 674, 102, 2, 631, 922] +[:mouse_move, 671, 102, 2, 632, 923] +[:mouse_move, 665, 102, 2, 633, 924] +[:mouse_move, 663, 103, 2, 634, 925] +[:mouse_move, 660, 103, 2, 635, 926] +[:mouse_move, 661, 103, 2, 636, 928] +[:mouse_move, 663, 103, 2, 637, 929] +[:mouse_move, 667, 103, 2, 638, 930] +[:mouse_move, 669, 103, 2, 639, 931] +[:mouse_move, 671, 103, 2, 640, 932] +[:mouse_move, 673, 103, 2, 641, 933] +[:key_down_raw, 104, 0, 2, 642, 949] +[:key_up_raw, 104, 0, 2, 643, 955] +[:mouse_move, 665, 102, 2, 644, 985] +[:mouse_move, 657, 101, 2, 645, 986] +[:mouse_move, 647, 101, 2, 646, 987] +[:mouse_move, 646, 101, 2, 647, 988] +[:mouse_move, 641, 101, 2, 648, 989] +[:mouse_move, 640, 101, 2, 649, 990] +[:mouse_move, 640, 102, 2, 650, 991] +[:mouse_move, 642, 102, 2, 651, 992] +[:mouse_move, 655, 103, 2, 652, 993] +[:mouse_move, 663, 104, 2, 653, 994] +[:mouse_move, 676, 104, 2, 654, 995] +[:mouse_move, 679, 104, 2, 655, 996] +[:mouse_move, 689, 104, 2, 656, 997] +[:mouse_move, 691, 104, 2, 657, 998] +[:mouse_move, 695, 104, 2, 658, 999] +[:mouse_move, 695, 103, 2, 659, 1000] +[:mouse_move, 692, 102, 2, 660, 1002] +[:mouse_move, 681, 102, 2, 661, 1003] +[:mouse_move, 677, 102, 2, 662, 1004] +[:mouse_move, 670, 103, 2, 663, 1005] +[:mouse_move, 667, 103, 2, 664, 1006] +[:mouse_move, 663, 104, 2, 665, 1007] +[:mouse_move, 662, 104, 2, 666, 1008] +[:mouse_move, 663, 104, 2, 667, 1009] +[:mouse_move, 666, 104, 2, 668, 1010] +[:mouse_move, 674, 103, 2, 669, 1011] +[:mouse_move, 678, 102, 2, 670, 1012] +[:mouse_move, 680, 102, 2, 671, 1013] +[:mouse_move, 687, 101, 2, 672, 1014] +[:mouse_move, 689, 101, 2, 673, 1015] +[:mouse_move, 691, 101, 2, 674, 1016] +[:mouse_move, 686, 101, 2, 675, 1018] +[:mouse_move, 682, 101, 2, 676, 1019] +[:mouse_move, 676, 102, 2, 677, 1020] +[:mouse_move, 673, 103, 2, 678, 1021] +[:mouse_move, 670, 104, 2, 679, 1022] +[:mouse_move, 669, 104, 2, 680, 1023] +[:mouse_move, 672, 104, 2, 681, 1025] +[:mouse_move, 677, 104, 2, 682, 1026] +[:mouse_move, 680, 104, 2, 683, 1027] +[:mouse_move, 685, 103, 2, 684, 1028] +[:mouse_move, 686, 103, 2, 685, 1029] +[:mouse_move, 687, 103, 2, 686, 1030] +[:mouse_move, 676, 103, 2, 687, 1032] +[:mouse_move, 672, 103, 2, 688, 1033] +[:mouse_move, 663, 104, 2, 689, 1034] +[:mouse_move, 660, 104, 2, 690, 1035] +[:mouse_move, 655, 105, 2, 691, 1036] +[:mouse_move, 657, 105, 2, 692, 1038] +[:mouse_move, 659, 105, 2, 693, 1039] +[:mouse_move, 660, 105, 2, 694, 1040] +[:mouse_move, 663, 105, 2, 695, 1041] +[:mouse_move, 664, 105, 2, 696, 1042] +[:mouse_move, 665, 105, 2, 697, 1043] +[:key_down_raw, 104, 0, 2, 698, 1052] +[:key_up_raw, 104, 0, 2, 699, 1056] +[:mouse_move, 664, 105, 2, 700, 1074] +[:mouse_move, 666, 105, 2, 701, 1079] +[:mouse_move, 673, 105, 2, 702, 1080] +[:mouse_move, 677, 104, 2, 703, 1081] +[:mouse_move, 689, 103, 2, 704, 1082] +[:mouse_move, 695, 102, 2, 705, 1083] +[:mouse_move, 702, 101, 2, 706, 1084] +[:mouse_move, 705, 99, 2, 707, 1085] +[:mouse_move, 710, 97, 2, 708, 1086] +[:mouse_move, 711, 96, 2, 709, 1087] +[:mouse_move, 711, 93, 2, 710, 1088] +[:mouse_move, 711, 91, 2, 711, 1089] +[:mouse_move, 711, 86, 2, 712, 1090] +[:mouse_move, 710, 83, 2, 713, 1091] +[:mouse_move, 706, 78, 2, 714, 1092] +[:mouse_move, 703, 75, 2, 715, 1093] +[:mouse_move, 699, 74, 2, 716, 1094] +[:mouse_move, 690, 73, 2, 717, 1095] +[:mouse_move, 683, 73, 2, 718, 1096] +[:mouse_move, 675, 73, 2, 719, 1097] +[:mouse_move, 670, 73, 2, 720, 1098] +[:mouse_move, 662, 73, 2, 721, 1099] +[:mouse_move, 660, 73, 2, 722, 1100] +[:mouse_move, 655, 75, 2, 723, 1101] +[:mouse_move, 652, 77, 2, 724, 1102] +[:mouse_move, 649, 81, 2, 725, 1103] +[:mouse_move, 648, 83, 2, 726, 1104] +[:mouse_move, 647, 87, 2, 727, 1105] +[:mouse_move, 647, 89, 2, 728, 1106] +[:mouse_move, 646, 92, 2, 729, 1107] +[:mouse_move, 646, 95, 2, 730, 1108] +[:mouse_move, 648, 99, 2, 731, 1109] +[:mouse_move, 652, 102, 2, 732, 1110] +[:mouse_move, 664, 107, 2, 733, 1111] +[:mouse_move, 668, 108, 2, 734, 1112] +[:mouse_move, 682, 111, 2, 735, 1113] +[:mouse_move, 688, 111, 2, 736, 1114] +[:mouse_move, 696, 111, 2, 737, 1115] +[:mouse_move, 703, 110, 2, 738, 1116] +[:mouse_move, 707, 107, 2, 739, 1117] +[:mouse_move, 709, 105, 2, 740, 1118] +[:mouse_move, 712, 102, 2, 741, 1119] +[:mouse_move, 712, 100, 2, 742, 1120] +[:mouse_move, 712, 96, 2, 743, 1121] +[:mouse_move, 710, 94, 2, 744, 1122] +[:mouse_move, 709, 94, 2, 745, 1123] +[:mouse_move, 704, 92, 2, 746, 1124] +[:mouse_move, 701, 89, 2, 747, 1125] +[:mouse_move, 696, 84, 2, 748, 1126] +[:mouse_move, 691, 78, 2, 749, 1127] +[:mouse_move, 682, 63, 2, 750, 1128] +[:mouse_move, 679, 59, 2, 751, 1129] +[:mouse_move, 668, 46, 2, 752, 1130] +[:mouse_move, 666, 44, 2, 753, 1131] +[:mouse_move, 656, 33, 2, 754, 1132] +[:mouse_move, 652, 30, 2, 755, 1133] +[:mouse_move, 647, 25, 2, 756, 1134] +[:mouse_move, 643, 23, 2, 757, 1135] +[:mouse_move, 638, 20, 2, 758, 1136] +[:mouse_move, 636, 19, 2, 759, 1137] +[:mouse_move, 631, 18, 2, 760, 1138] +[:mouse_move, 629, 17, 2, 761, 1139] +[:mouse_move, 625, 17, 2, 762, 1140] +[:mouse_move, 624, 17, 2, 763, 1141] +[:mouse_move, 620, 17, 2, 764, 1142] +[:mouse_move, 618, 17, 2, 765, 1143] +[:mouse_move, 615, 17, 2, 766, 1144] +[:mouse_move, 614, 17, 2, 767, 1145] +[:mouse_move, 612, 18, 2, 768, 1146] +[:mouse_move, 611, 18, 2, 769, 1147] +[:mouse_move, 611, 19, 2, 770, 1150] +[:mouse_move, 612, 19, 2, 771, 1151] +[:mouse_move, 615, 20, 2, 772, 1152] +[:mouse_move, 624, 22, 2, 773, 1153] +[:mouse_move, 629, 23, 2, 774, 1154] +[:mouse_move, 640, 24, 2, 775, 1155] +[:mouse_move, 646, 24, 2, 776, 1156] +[:mouse_move, 652, 25, 2, 777, 1157] +[:mouse_move, 656, 25, 2, 778, 1158] +[:mouse_move, 661, 25, 2, 779, 1159] +[:mouse_move, 663, 25, 2, 780, 1160] +[:mouse_move, 665, 25, 2, 781, 1161] +[:mouse_move, 666, 25, 2, 782, 1162] +[:mouse_move, 667, 25, 2, 783, 1163] +[:mouse_move, 665, 25, 2, 784, 1166] +[:mouse_move, 659, 25, 2, 785, 1167] +[:mouse_move, 650, 26, 2, 786, 1168] +[:mouse_move, 644, 26, 2, 787, 1169] +[:mouse_move, 635, 26, 2, 788, 1170] +[:mouse_move, 629, 26, 2, 789, 1171] +[:mouse_move, 627, 26, 2, 790, 1172] +[:mouse_move, 624, 26, 2, 791, 1173] +[:mouse_move, 623, 26, 2, 792, 1174] +[:mouse_move, 624, 26, 2, 793, 1178] +[:mouse_move, 626, 26, 2, 794, 1179] +[:mouse_move, 634, 26, 2, 795, 1180] +[:mouse_move, 636, 26, 2, 796, 1181] +[:mouse_move, 641, 26, 2, 797, 1182] +[:mouse_move, 643, 26, 2, 798, 1183] +[:mouse_move, 646, 26, 2, 799, 1184] +[:mouse_move, 645, 26, 2, 800, 1187] +[:mouse_move, 634, 26, 2, 801, 1188] +[:mouse_move, 631, 26, 2, 802, 1189] +[:mouse_move, 623, 26, 2, 803, 1190] +[:mouse_move, 620, 26, 2, 804, 1191] +[:mouse_move, 615, 26, 2, 805, 1192] +[:mouse_move, 614, 26, 2, 806, 1193] +[:mouse_move, 613, 26, 2, 807, 1195] +[:mouse_move, 613, 27, 2, 808, 1197] +[:key_down_raw, 1073742051, 1024, 2, 809, 1282] +[:key_down_raw, 113, 1024, 2, 810, 1282] diff --git a/samples/02_input_basics/02_mouse/app/main.rb b/samples/02_input_basics/02_mouse/app/main.rb new file mode 100644 index 0000000..43217f5 --- /dev/null +++ b/samples/02_input_basics/02_mouse/app/main.rb @@ -0,0 +1,87 @@ +=begin + +APIs that haven't been encountered in a previous sample apps: + +- args.inputs.mouse.click: This property will be set if the mouse was clicked. +- args.inputs.mouse.click.point.(x|y): The x and y location of the mouse. +- args.inputs.mouse.click.point.created_at: The frame the mouse click occurred in. +- args.inputs.mouse.click.point.created_at_elapsed: How many frames have passed + since the click event. + +Reminder: + +- args.state.PROPERTY: The state property on args is a dynamic + structure. You can define ANY property here with ANY type of + arbitrary nesting. Properties defined on args.state will be retained + across frames. If you attempt access a property that doesn't exist + on args.state, it will simply return nil (no exception will be thrown). + +=end + +# This code demonstrates DragonRuby mouse input + +# To see if the a mouse click occurred +# Use args.inputs.mouse.click +# Which returns a boolean + +# To see where a mouse click occurred +# Use args.inputs.mouse.click.point.x AND +# args.inputs.mouse.click.point.y + +# To see which frame the click occurred +# Use args.inputs.mouse.click.created_at + +# To see how many frames its been since the click occurred +# Use args.inputs.mouse.click.creat_at_elapsed + +# Saving the click in args.state can be quite useful + +def tick args + tick_instructions args, "Sample app shows how mouse events are registered and how to measure elapsed time." + x = 460 + + args.outputs.labels << small_label(args, x, 11, "Mouse input: args.inputs.mouse") + + if args.inputs.mouse.click + args.state.last_mouse_click = args.inputs.mouse.click + end + + if args.state.last_mouse_click + click = args.state.last_mouse_click + args.outputs.labels << small_label(args, x, 12, "Mouse click happened at: #{click.created_at}") + args.outputs.labels << small_label(args, x, 13, "Mouse clicked #{click.created_at_elapsed} ticks ago") + args.outputs.labels << small_label(args, x, 14, "Mouse click location: #{click.point.x}, #{click.point.y}") + else + args.outputs.labels << small_label(args, x, 12, "Mouse click has not occurred yet.") + args.outputs.labels << small_label(args, x, 13, "Please click mouse.") + end +end + +def small_label args, x, row, message + # This method effectively combines the row_to_px and small_font methods + # It changes the given row value to a DragonRuby pixel value + # and adds the customization parameters + [x, row_to_px(args, row), message, small_font] +end + +def small_font + [-2, 0, 0, 0, 0, 255] +end + +def row_to_px args, row_number + args.grid.top.shift_down(5).shift_down(20 * row_number) +end + +def tick_instructions args, text, y = 715 + return if args.state.key_event_occurred + if args.inputs.mouse.click || + args.inputs.keyboard.directional_vector || + args.inputs.keyboard.key_down.enter || + args.inputs.keyboard.key_down.escape + args.state.key_event_occurred = true + end + + args.outputs.debug << [0, y - 50, 1280, 60].solid + args.outputs.debug << [640, y, text, 1, 1, 255, 255, 255].label + args.outputs.debug << [640, y - 25, "(click to dismiss instructions)" , -2, 1, 255, 255, 255].label +end diff --git a/samples/02_input_basics/02_mouse/license-for-sample.txt b/samples/02_input_basics/02_mouse/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/02_input_basics/02_mouse/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/02_input_basics/02_mouse/replay.txt b/samples/02_input_basics/02_mouse/replay.txt new file mode 100644 index 0000000..61b4bd1 --- /dev/null +++ b/samples/02_input_basics/02_mouse/replay.txt @@ -0,0 +1,893 @@ +replay_version 2.0 +stopped_at 1510 +seed 100 +recorded_at Sun Sep 29 21:33:51 2019 +[:mouse_move, 312, 285, 2, 1, 87] +[:mouse_move, 316, 285, 2, 2, 88] +[:mouse_move, 323, 285, 2, 3, 89] +[:mouse_move, 328, 285, 2, 4, 90] +[:mouse_move, 334, 285, 2, 5, 91] +[:mouse_move, 338, 285, 2, 6, 92] +[:mouse_move, 354, 285, 2, 7, 93] +[:mouse_move, 363, 285, 2, 8, 94] +[:mouse_move, 375, 284, 2, 9, 95] +[:mouse_move, 382, 284, 2, 10, 96] +[:mouse_move, 395, 282, 2, 11, 97] +[:mouse_move, 407, 280, 2, 12, 98] +[:mouse_move, 424, 279, 2, 13, 99] +[:mouse_move, 429, 279, 2, 14, 100] +[:mouse_move, 432, 278, 2, 15, 101] +[:mouse_move, 441, 278, 2, 16, 102] +[:mouse_move, 444, 278, 2, 17, 103] +[:mouse_move, 447, 278, 2, 18, 104] +[:mouse_move, 448, 278, 2, 19, 106] +[:mouse_move, 447, 277, 2, 20, 110] +[:mouse_move, 445, 276, 2, 21, 111] +[:mouse_move, 444, 273, 2, 22, 112] +[:mouse_move, 444, 271, 2, 23, 113] +[:mouse_move, 444, 268, 2, 24, 114] +[:mouse_move, 444, 266, 2, 25, 115] +[:mouse_move, 446, 263, 2, 26, 116] +[:mouse_move, 447, 262, 2, 27, 117] +[:mouse_move, 448, 261, 2, 28, 118] +[:mouse_move, 449, 261, 2, 29, 120] +[:mouse_move, 453, 261, 2, 30, 137] +[:mouse_move, 457, 261, 2, 31, 138] +[:mouse_move, 469, 260, 2, 32, 139] +[:mouse_move, 477, 260, 2, 33, 140] +[:mouse_move, 492, 260, 2, 34, 141] +[:mouse_move, 499, 260, 2, 35, 142] +[:mouse_move, 512, 261, 2, 36, 143] +[:mouse_move, 517, 261, 2, 37, 144] +[:mouse_move, 526, 262, 2, 38, 145] +[:mouse_move, 528, 262, 2, 39, 146] +[:mouse_move, 536, 262, 2, 40, 147] +[:mouse_move, 539, 262, 2, 41, 148] +[:mouse_move, 544, 262, 2, 42, 149] +[:mouse_move, 546, 262, 2, 43, 150] +[:mouse_move, 550, 262, 2, 44, 151] +[:mouse_move, 551, 262, 2, 45, 152] +[:mouse_move, 553, 262, 2, 46, 153] +[:mouse_move, 557, 262, 2, 47, 154] +[:mouse_move, 563, 262, 2, 48, 155] +[:mouse_move, 565, 262, 2, 49, 156] +[:mouse_move, 568, 262, 2, 50, 157] +[:mouse_move, 575, 261, 2, 51, 158] +[:mouse_move, 579, 260, 2, 52, 159] +[:mouse_move, 586, 259, 2, 53, 160] +[:mouse_move, 590, 258, 2, 54, 161] +[:mouse_move, 598, 257, 2, 55, 162] +[:mouse_move, 602, 257, 2, 56, 163] +[:mouse_move, 610, 257, 2, 57, 164] +[:mouse_move, 613, 257, 2, 58, 165] +[:mouse_move, 619, 257, 2, 59, 166] +[:mouse_move, 625, 256, 2, 60, 167] +[:mouse_move, 631, 256, 2, 61, 168] +[:mouse_move, 635, 256, 2, 62, 169] +[:mouse_move, 640, 255, 2, 63, 170] +[:mouse_move, 645, 255, 2, 64, 171] +[:mouse_move, 649, 254, 2, 65, 172] +[:mouse_move, 652, 254, 2, 66, 173] +[:mouse_move, 657, 254, 2, 67, 174] +[:mouse_move, 659, 253, 2, 68, 175] +[:mouse_move, 663, 253, 2, 69, 176] +[:mouse_move, 666, 253, 2, 70, 177] +[:mouse_move, 669, 253, 2, 71, 178] +[:mouse_move, 673, 252, 2, 72, 179] +[:mouse_move, 677, 252, 2, 73, 180] +[:mouse_move, 680, 251, 2, 74, 181] +[:mouse_move, 685, 250, 2, 75, 182] +[:mouse_move, 686, 250, 2, 76, 183] +[:mouse_move, 688, 249, 2, 77, 184] +[:mouse_move, 691, 248, 2, 78, 185] +[:mouse_move, 692, 248, 2, 79, 186] +[:mouse_move, 693, 248, 2, 80, 187] +[:mouse_move, 694, 248, 2, 81, 189] +[:mouse_move, 692, 248, 2, 82, 207] +[:mouse_move, 690, 248, 2, 83, 208] +[:mouse_move, 681, 248, 2, 84, 209] +[:mouse_move, 676, 249, 2, 85, 210] +[:mouse_move, 669, 249, 2, 86, 211] +[:mouse_move, 655, 250, 2, 87, 212] +[:mouse_move, 641, 251, 2, 88, 213] +[:mouse_move, 622, 251, 2, 89, 214] +[:mouse_move, 610, 251, 2, 90, 215] +[:mouse_move, 594, 251, 2, 91, 216] +[:mouse_move, 578, 251, 2, 92, 217] +[:mouse_move, 570, 251, 2, 93, 218] +[:mouse_move, 563, 251, 2, 94, 219] +[:mouse_move, 544, 251, 2, 95, 220] +[:mouse_move, 539, 251, 2, 96, 221] +[:mouse_move, 525, 251, 2, 97, 222] +[:mouse_move, 512, 252, 2, 98, 223] +[:mouse_move, 507, 252, 2, 99, 224] +[:mouse_move, 501, 252, 2, 100, 225] +[:mouse_move, 488, 252, 2, 101, 226] +[:mouse_move, 481, 252, 2, 102, 227] +[:mouse_move, 466, 253, 2, 103, 228] +[:mouse_move, 458, 253, 2, 104, 229] +[:mouse_move, 445, 254, 2, 105, 230] +[:mouse_move, 439, 254, 2, 106, 231] +[:mouse_move, 434, 255, 2, 107, 232] +[:mouse_move, 431, 256, 2, 108, 233] +[:mouse_move, 428, 256, 2, 109, 234] +[:mouse_move, 427, 257, 2, 110, 235] +[:mouse_move, 426, 257, 2, 111, 236] +[:mouse_move, 426, 258, 2, 112, 239] +[:mouse_move, 427, 259, 2, 113, 240] +[:mouse_move, 433, 263, 2, 114, 241] +[:mouse_move, 436, 264, 2, 115, 242] +[:mouse_move, 445, 268, 2, 116, 243] +[:mouse_move, 450, 269, 2, 117, 244] +[:mouse_move, 461, 270, 2, 118, 245] +[:mouse_move, 474, 270, 2, 119, 246] +[:mouse_move, 481, 270, 2, 120, 247] +[:mouse_move, 488, 270, 2, 121, 248] +[:mouse_move, 501, 269, 2, 122, 249] +[:mouse_move, 507, 268, 2, 123, 250] +[:mouse_move, 518, 266, 2, 124, 251] +[:mouse_move, 523, 265, 2, 125, 252] +[:mouse_move, 533, 264, 2, 126, 253] +[:mouse_move, 538, 264, 2, 127, 254] +[:mouse_move, 548, 263, 2, 128, 255] +[:mouse_move, 553, 262, 2, 129, 256] +[:mouse_move, 563, 262, 2, 130, 257] +[:mouse_move, 569, 261, 2, 131, 258] +[:mouse_move, 578, 261, 2, 132, 259] +[:mouse_move, 583, 261, 2, 133, 260] +[:mouse_move, 592, 261, 2, 134, 261] +[:mouse_move, 596, 261, 2, 135, 262] +[:mouse_move, 605, 261, 2, 136, 263] +[:mouse_move, 609, 261, 2, 137, 264] +[:mouse_move, 611, 261, 2, 138, 265] +[:mouse_move, 621, 261, 2, 139, 266] +[:mouse_move, 624, 261, 2, 140, 267] +[:mouse_move, 631, 261, 2, 141, 268] +[:mouse_move, 635, 261, 2, 142, 269] +[:mouse_move, 642, 261, 2, 143, 270] +[:mouse_move, 646, 261, 2, 144, 271] +[:mouse_move, 653, 262, 2, 145, 272] +[:mouse_move, 656, 262, 2, 146, 273] +[:mouse_move, 664, 263, 2, 147, 274] +[:mouse_move, 666, 263, 2, 148, 275] +[:mouse_move, 673, 264, 2, 149, 276] +[:mouse_move, 678, 264, 2, 150, 277] +[:mouse_move, 685, 264, 2, 151, 278] +[:mouse_move, 689, 265, 2, 152, 279] +[:mouse_move, 694, 265, 2, 153, 280] +[:mouse_move, 697, 265, 2, 154, 281] +[:mouse_move, 702, 265, 2, 155, 282] +[:mouse_move, 704, 265, 2, 156, 283] +[:mouse_move, 706, 265, 2, 157, 284] +[:mouse_move, 706, 266, 2, 158, 285] +[:mouse_move, 708, 266, 2, 159, 286] +[:mouse_move, 709, 266, 2, 160, 288] +[:mouse_move, 708, 269, 2, 161, 318] +[:mouse_move, 693, 283, 2, 162, 319] +[:mouse_move, 680, 294, 2, 163, 320] +[:mouse_move, 641, 322, 2, 164, 321] +[:mouse_move, 618, 340, 2, 165, 322] +[:mouse_move, 609, 346, 2, 166, 323] +[:mouse_move, 583, 363, 2, 167, 324] +[:mouse_move, 570, 371, 2, 168, 325] +[:mouse_move, 552, 378, 2, 169, 326] +[:mouse_move, 546, 379, 2, 170, 327] +[:mouse_move, 538, 379, 2, 171, 328] +[:mouse_move, 536, 379, 2, 172, 329] +[:mouse_move, 531, 372, 2, 173, 330] +[:mouse_move, 526, 365, 2, 174, 331] +[:mouse_move, 517, 352, 2, 175, 332] +[:mouse_move, 510, 344, 2, 176, 333] +[:mouse_move, 496, 334, 2, 177, 334] +[:mouse_move, 488, 328, 2, 178, 335] +[:mouse_move, 474, 319, 2, 179, 336] +[:mouse_move, 467, 315, 2, 180, 337] +[:mouse_move, 458, 307, 2, 181, 338] +[:mouse_move, 454, 304, 2, 182, 339] +[:mouse_move, 449, 300, 2, 183, 340] +[:mouse_move, 447, 298, 2, 184, 341] +[:mouse_move, 445, 294, 2, 185, 342] +[:mouse_move, 444, 292, 2, 186, 343] +[:mouse_move, 443, 291, 2, 187, 344] +[:mouse_move, 442, 290, 2, 188, 345] +[:mouse_move, 442, 289, 2, 189, 346] +[:mouse_move, 442, 288, 2, 190, 349] +[:mouse_move, 442, 287, 2, 191, 353] +[:mouse_move, 444, 287, 2, 192, 354] +[:mouse_move, 449, 287, 2, 193, 355] +[:mouse_move, 454, 287, 2, 194, 356] +[:mouse_move, 470, 287, 2, 195, 357] +[:mouse_move, 480, 287, 2, 196, 358] +[:mouse_move, 504, 288, 2, 197, 359] +[:mouse_move, 517, 289, 2, 198, 360] +[:mouse_move, 534, 290, 2, 199, 361] +[:mouse_move, 546, 290, 2, 200, 362] +[:mouse_move, 565, 290, 2, 201, 363] +[:mouse_move, 573, 290, 2, 202, 364] +[:mouse_move, 583, 290, 2, 203, 365] +[:mouse_move, 587, 290, 2, 204, 366] +[:mouse_move, 595, 290, 2, 205, 367] +[:mouse_move, 598, 290, 2, 206, 368] +[:mouse_move, 602, 290, 2, 207, 369] +[:mouse_move, 604, 290, 2, 208, 370] +[:mouse_move, 607, 290, 2, 209, 371] +[:mouse_move, 608, 291, 2, 210, 372] +[:mouse_move, 611, 291, 2, 211, 373] +[:mouse_move, 612, 291, 2, 212, 374] +[:mouse_move, 613, 291, 2, 213, 375] +[:mouse_move, 615, 291, 2, 214, 376] +[:mouse_move, 616, 292, 2, 215, 377] +[:mouse_move, 617, 292, 2, 216, 380] +[:mouse_move, 616, 294, 2, 217, 395] +[:mouse_move, 604, 307, 2, 218, 396] +[:mouse_move, 592, 318, 2, 219, 397] +[:mouse_move, 569, 336, 2, 220, 398] +[:mouse_move, 562, 340, 2, 221, 399] +[:mouse_move, 549, 348, 2, 222, 400] +[:mouse_move, 544, 352, 2, 223, 401] +[:mouse_move, 540, 354, 2, 224, 402] +[:mouse_move, 536, 357, 2, 225, 403] +[:mouse_move, 539, 357, 2, 226, 407] +[:mouse_move, 541, 357, 2, 227, 408] +[:mouse_move, 544, 357, 2, 228, 409] +[:mouse_move, 548, 357, 2, 229, 410] +[:mouse_move, 553, 357, 2, 230, 411] +[:mouse_move, 557, 357, 2, 231, 412] +[:mouse_move, 566, 358, 2, 232, 413] +[:mouse_move, 570, 358, 2, 233, 414] +[:mouse_move, 575, 358, 2, 234, 415] +[:mouse_move, 577, 358, 2, 235, 416] +[:mouse_move, 581, 358, 2, 236, 417] +[:mouse_move, 583, 358, 2, 237, 418] +[:mouse_move, 584, 358, 2, 238, 419] +[:mouse_move, 585, 358, 2, 239, 420] +[:mouse_button_pressed, 1, 0, 1, 240, 428] +[:mouse_button_up, 1, 0, 1, 241, 437] +[:mouse_move, 583, 359, 2, 242, 463] +[:mouse_move, 583, 360, 2, 243, 464] +[:mouse_move, 585, 360, 2, 244, 466] +[:mouse_move, 595, 359, 2, 245, 467] +[:mouse_move, 605, 357, 2, 246, 468] +[:mouse_move, 627, 351, 2, 247, 469] +[:mouse_move, 632, 349, 2, 248, 470] +[:mouse_move, 642, 346, 2, 249, 471] +[:mouse_move, 660, 342, 2, 250, 472] +[:mouse_move, 672, 338, 2, 251, 473] +[:mouse_move, 677, 336, 2, 252, 474] +[:mouse_move, 684, 332, 2, 253, 475] +[:mouse_move, 686, 330, 2, 254, 476] +[:mouse_move, 689, 327, 2, 255, 477] +[:mouse_move, 691, 325, 2, 256, 478] +[:mouse_move, 693, 322, 2, 257, 479] +[:mouse_move, 693, 321, 2, 258, 480] +[:mouse_move, 693, 318, 2, 259, 481] +[:mouse_move, 692, 318, 2, 260, 482] +[:mouse_move, 688, 316, 2, 261, 483] +[:mouse_move, 684, 314, 2, 262, 484] +[:mouse_move, 683, 314, 2, 263, 485] +[:mouse_move, 678, 312, 2, 264, 486] +[:mouse_move, 676, 311, 2, 265, 487] +[:mouse_move, 673, 310, 2, 266, 488] +[:mouse_move, 672, 310, 2, 267, 489] +[:mouse_move, 669, 310, 2, 268, 490] +[:mouse_move, 667, 309, 2, 269, 491] +[:mouse_move, 663, 309, 2, 270, 492] +[:mouse_move, 661, 309, 2, 271, 493] +[:mouse_move, 657, 308, 2, 272, 494] +[:mouse_move, 655, 308, 2, 273, 495] +[:mouse_move, 652, 307, 2, 274, 496] +[:mouse_move, 651, 306, 2, 275, 497] +[:mouse_move, 650, 306, 2, 276, 498] +[:mouse_move, 649, 306, 2, 277, 503] +[:mouse_move, 648, 306, 2, 278, 508] +[:mouse_move, 647, 305, 2, 279, 509] +[:mouse_move, 645, 305, 2, 280, 510] +[:mouse_move, 636, 301, 2, 281, 511] +[:mouse_move, 628, 298, 2, 282, 512] +[:mouse_move, 605, 293, 2, 283, 513] +[:mouse_move, 593, 291, 2, 284, 514] +[:mouse_move, 581, 289, 2, 285, 515] +[:mouse_move, 565, 287, 2, 286, 516] +[:mouse_move, 555, 286, 2, 287, 517] +[:mouse_move, 550, 285, 2, 288, 518] +[:mouse_move, 544, 284, 2, 289, 519] +[:mouse_move, 542, 284, 2, 290, 520] +[:mouse_move, 541, 283, 2, 291, 521] +[:mouse_move, 540, 283, 2, 292, 523] +[:mouse_move, 541, 283, 2, 293, 529] +[:mouse_move, 543, 283, 2, 294, 531] +[:mouse_move, 545, 283, 2, 295, 532] +[:mouse_move, 550, 282, 2, 296, 533] +[:mouse_move, 553, 282, 2, 297, 534] +[:mouse_move, 558, 282, 2, 298, 535] +[:mouse_move, 561, 282, 2, 299, 536] +[:mouse_move, 566, 282, 2, 300, 537] +[:mouse_move, 570, 282, 2, 301, 538] +[:mouse_move, 571, 282, 2, 302, 539] +[:mouse_move, 576, 282, 2, 303, 540] +[:mouse_move, 578, 282, 2, 304, 541] +[:mouse_move, 584, 282, 2, 305, 542] +[:mouse_move, 588, 282, 2, 306, 543] +[:mouse_move, 590, 282, 2, 307, 544] +[:mouse_move, 592, 282, 2, 308, 545] +[:mouse_move, 595, 282, 2, 309, 546] +[:mouse_move, 597, 282, 2, 310, 547] +[:mouse_move, 599, 282, 2, 311, 548] +[:mouse_move, 601, 281, 2, 312, 549] +[:mouse_move, 602, 281, 2, 313, 550] +[:mouse_move, 602, 280, 2, 314, 551] +[:mouse_move, 604, 279, 2, 315, 552] +[:mouse_move, 605, 278, 2, 316, 554] +[:mouse_move, 606, 277, 2, 317, 555] +[:mouse_move, 606, 276, 2, 318, 556] +[:mouse_move, 607, 274, 2, 319, 557] +[:mouse_move, 607, 272, 2, 320, 558] +[:mouse_move, 607, 270, 2, 321, 559] +[:mouse_move, 607, 267, 2, 322, 560] +[:mouse_move, 607, 265, 2, 323, 561] +[:mouse_move, 606, 262, 2, 324, 562] +[:mouse_move, 605, 261, 2, 325, 563] +[:mouse_move, 603, 259, 2, 326, 564] +[:mouse_move, 598, 256, 2, 327, 565] +[:mouse_move, 597, 255, 2, 328, 566] +[:mouse_move, 592, 253, 2, 329, 567] +[:mouse_move, 590, 253, 2, 330, 568] +[:mouse_move, 585, 251, 2, 331, 569] +[:mouse_move, 581, 250, 2, 332, 570] +[:mouse_move, 575, 250, 2, 333, 571] +[:mouse_move, 573, 250, 2, 334, 572] +[:mouse_move, 569, 251, 2, 335, 573] +[:mouse_move, 565, 253, 2, 336, 574] +[:mouse_move, 564, 254, 2, 337, 575] +[:mouse_move, 562, 255, 2, 338, 576] +[:mouse_move, 560, 258, 2, 339, 577] +[:mouse_move, 559, 259, 2, 340, 578] +[:mouse_move, 558, 262, 2, 341, 579] +[:mouse_move, 558, 264, 2, 342, 580] +[:mouse_move, 558, 267, 2, 343, 581] +[:mouse_move, 558, 269, 2, 344, 582] +[:mouse_move, 559, 271, 2, 345, 583] +[:mouse_move, 561, 274, 2, 346, 584] +[:mouse_move, 562, 274, 2, 347, 585] +[:mouse_move, 565, 276, 2, 348, 586] +[:mouse_move, 571, 279, 2, 349, 587] +[:mouse_move, 573, 279, 2, 350, 588] +[:mouse_move, 580, 280, 2, 351, 589] +[:mouse_move, 581, 280, 2, 352, 590] +[:mouse_move, 586, 280, 2, 353, 591] +[:mouse_move, 590, 280, 2, 354, 592] +[:mouse_move, 592, 279, 2, 355, 593] +[:mouse_move, 596, 278, 2, 356, 594] +[:mouse_move, 597, 277, 2, 357, 595] +[:mouse_move, 599, 275, 2, 358, 596] +[:mouse_move, 599, 274, 2, 359, 597] +[:mouse_move, 600, 272, 2, 360, 598] +[:mouse_move, 600, 271, 2, 361, 599] +[:mouse_move, 601, 269, 2, 362, 600] +[:mouse_move, 602, 267, 2, 363, 601] +[:mouse_move, 602, 265, 2, 364, 602] +[:mouse_move, 603, 263, 2, 365, 603] +[:mouse_move, 603, 260, 2, 366, 604] +[:mouse_move, 603, 258, 2, 367, 605] +[:mouse_move, 602, 254, 2, 368, 606] +[:mouse_move, 600, 252, 2, 369, 607] +[:mouse_move, 594, 249, 2, 370, 608] +[:mouse_move, 590, 248, 2, 371, 609] +[:mouse_move, 580, 247, 2, 372, 610] +[:mouse_move, 578, 247, 2, 373, 611] +[:mouse_move, 571, 247, 2, 374, 612] +[:mouse_move, 568, 247, 2, 375, 613] +[:mouse_move, 565, 248, 2, 376, 614] +[:mouse_move, 564, 249, 2, 377, 615] +[:mouse_move, 563, 252, 2, 378, 616] +[:mouse_move, 563, 254, 2, 379, 617] +[:mouse_move, 567, 261, 2, 380, 618] +[:mouse_move, 573, 266, 2, 381, 619] +[:mouse_move, 585, 275, 2, 382, 620] +[:mouse_move, 608, 288, 2, 383, 621] +[:mouse_move, 623, 296, 2, 384, 622] +[:mouse_move, 641, 305, 2, 385, 623] +[:mouse_move, 645, 307, 2, 386, 624] +[:mouse_move, 658, 314, 2, 387, 625] +[:mouse_move, 661, 315, 2, 388, 626] +[:mouse_move, 659, 315, 2, 389, 637] +[:mouse_move, 658, 315, 2, 390, 638] +[:mouse_move, 656, 315, 2, 391, 639] +[:mouse_move, 653, 313, 2, 392, 640] +[:mouse_move, 640, 309, 2, 393, 641] +[:mouse_move, 635, 308, 2, 394, 642] +[:mouse_move, 626, 305, 2, 395, 643] +[:mouse_move, 625, 305, 2, 396, 644] +[:mouse_move, 619, 304, 2, 397, 645] +[:mouse_move, 618, 303, 2, 398, 646] +[:mouse_move, 616, 303, 2, 399, 648] +[:mouse_move, 617, 303, 2, 400, 651] +[:mouse_move, 624, 303, 2, 401, 652] +[:mouse_move, 627, 303, 2, 402, 653] +[:mouse_move, 645, 303, 2, 403, 654] +[:mouse_move, 654, 304, 2, 404, 655] +[:mouse_move, 669, 304, 2, 405, 656] +[:mouse_move, 678, 304, 2, 406, 657] +[:mouse_move, 692, 304, 2, 407, 658] +[:mouse_move, 697, 304, 2, 408, 659] +[:mouse_move, 703, 304, 2, 409, 660] +[:mouse_move, 707, 304, 2, 410, 661] +[:mouse_move, 712, 304, 2, 411, 662] +[:mouse_move, 717, 304, 2, 412, 663] +[:mouse_move, 722, 304, 2, 413, 664] +[:mouse_move, 725, 304, 2, 414, 665] +[:mouse_move, 730, 304, 2, 415, 666] +[:mouse_move, 732, 304, 2, 416, 667] +[:mouse_move, 736, 304, 2, 417, 668] +[:mouse_move, 737, 304, 2, 418, 670] +[:mouse_move, 733, 303, 2, 419, 672] +[:mouse_move, 726, 303, 2, 420, 673] +[:mouse_move, 716, 303, 2, 421, 674] +[:mouse_move, 691, 303, 2, 422, 675] +[:mouse_move, 675, 303, 2, 423, 676] +[:mouse_move, 651, 304, 2, 424, 677] +[:mouse_move, 638, 305, 2, 425, 678] +[:mouse_move, 624, 306, 2, 426, 679] +[:mouse_move, 618, 306, 2, 427, 680] +[:mouse_move, 612, 307, 2, 428, 681] +[:mouse_move, 611, 307, 2, 429, 682] +[:mouse_move, 610, 307, 2, 430, 683] +[:mouse_move, 615, 307, 2, 431, 685] +[:mouse_move, 620, 308, 2, 432, 686] +[:mouse_move, 640, 309, 2, 433, 687] +[:mouse_move, 651, 311, 2, 434, 688] +[:mouse_move, 667, 312, 2, 435, 689] +[:mouse_move, 671, 312, 2, 436, 690] +[:mouse_move, 683, 313, 2, 437, 691] +[:mouse_move, 687, 313, 2, 438, 692] +[:mouse_move, 690, 313, 2, 439, 693] +[:mouse_move, 691, 313, 2, 440, 695] +[:mouse_move, 695, 311, 2, 441, 699] +[:mouse_move, 704, 305, 2, 442, 700] +[:mouse_move, 717, 299, 2, 443, 701] +[:mouse_move, 782, 275, 2, 444, 702] +[:mouse_move, 821, 262, 2, 445, 703] +[:mouse_move, 919, 230, 2, 446, 704] +[:mouse_move, 973, 212, 2, 447, 705] +[:mouse_move, 1042, 188, 2, 448, 706] +[:mouse_move, 1084, 173, 2, 449, 707] +[:mouse_move, 1126, 157, 2, 450, 708] +[:mouse_move, 1135, 154, 2, 451, 709] +[:mouse_move, 1163, 139, 2, 452, 710] +[:mouse_move, 1166, 138, 2, 453, 711] +[:mouse_move, 1175, 131, 2, 454, 712] +[:mouse_move, 1177, 129, 2, 455, 713] +[:mouse_move, 1180, 124, 2, 456, 714] +[:mouse_move, 1180, 123, 2, 457, 715] +[:mouse_move, 1181, 120, 2, 458, 716] +[:mouse_move, 1182, 118, 2, 459, 717] +[:mouse_move, 1183, 113, 2, 460, 718] +[:mouse_move, 1183, 109, 2, 461, 719] +[:mouse_move, 1187, 99, 2, 462, 720] +[:mouse_move, 1189, 91, 2, 463, 721] +[:mouse_move, 1198, 72, 2, 464, 722] +[:mouse_move, 1203, 61, 2, 465, 723] +[:mouse_move, 1213, 45, 2, 466, 724] +[:mouse_move, 1219, 37, 2, 467, 725] +[:mouse_move, 1232, 24, 2, 468, 726] +[:mouse_move, 1237, 19, 2, 469, 727] +[:mouse_move, 1242, 17, 2, 470, 728] +[:mouse_move, 1247, 15, 2, 471, 729] +[:mouse_move, 1250, 14, 2, 472, 730] +[:mouse_move, 1251, 14, 2, 473, 754] +[:mouse_move, 1252, 14, 2, 474, 755] +[:mouse_move, 1255, 14, 2, 475, 756] +[:mouse_move, 1256, 14, 2, 476, 757] +[:mouse_move, 1258, 14, 2, 477, 758] +[:mouse_move, 1260, 13, 2, 478, 760] +[:mouse_button_pressed, 1, 0, 1, 479, 768] +[:mouse_button_up, 1, 0, 1, 480, 776] +[:mouse_move, 1254, 17, 2, 481, 801] +[:mouse_move, 1242, 23, 2, 482, 802] +[:mouse_move, 1193, 43, 2, 483, 803] +[:mouse_move, 1154, 56, 2, 484, 804] +[:mouse_move, 1045, 90, 2, 485, 805] +[:mouse_move, 978, 113, 2, 486, 806] +[:mouse_move, 845, 154, 2, 487, 807] +[:mouse_move, 821, 161, 2, 488, 808] +[:mouse_move, 772, 176, 2, 489, 809] +[:mouse_move, 722, 190, 2, 490, 810] +[:mouse_move, 713, 193, 2, 491, 811] +[:mouse_move, 689, 200, 2, 492, 812] +[:mouse_move, 678, 203, 2, 493, 813] +[:mouse_move, 666, 207, 2, 494, 814] +[:mouse_move, 663, 208, 2, 495, 815] +[:mouse_move, 656, 211, 2, 496, 816] +[:mouse_move, 654, 212, 2, 497, 817] +[:mouse_move, 649, 215, 2, 498, 818] +[:mouse_move, 646, 217, 2, 499, 819] +[:mouse_move, 641, 222, 2, 500, 820] +[:mouse_move, 638, 224, 2, 501, 821] +[:mouse_move, 632, 231, 2, 502, 822] +[:mouse_move, 630, 235, 2, 503, 823] +[:mouse_move, 625, 245, 2, 504, 824] +[:mouse_move, 621, 255, 2, 505, 825] +[:mouse_move, 618, 265, 2, 506, 826] +[:mouse_move, 618, 267, 2, 507, 827] +[:mouse_move, 616, 275, 2, 508, 828] +[:mouse_move, 616, 277, 2, 509, 829] +[:mouse_move, 616, 285, 2, 510, 830] +[:mouse_move, 616, 288, 2, 511, 831] +[:mouse_move, 616, 293, 2, 512, 832] +[:mouse_move, 617, 295, 2, 513, 833] +[:mouse_move, 617, 298, 2, 514, 834] +[:mouse_move, 618, 300, 2, 515, 835] +[:mouse_move, 618, 302, 2, 516, 837] +[:mouse_move, 618, 303, 2, 517, 839] +[:mouse_move, 619, 303, 2, 518, 841] +[:mouse_move, 621, 303, 2, 519, 842] +[:mouse_move, 626, 303, 2, 520, 843] +[:mouse_move, 630, 303, 2, 521, 844] +[:mouse_move, 642, 303, 2, 522, 845] +[:mouse_move, 649, 302, 2, 523, 846] +[:mouse_move, 664, 300, 2, 524, 847] +[:mouse_move, 669, 299, 2, 525, 848] +[:mouse_move, 680, 298, 2, 526, 849] +[:mouse_move, 685, 298, 2, 527, 850] +[:mouse_move, 695, 298, 2, 528, 851] +[:mouse_move, 699, 298, 2, 529, 852] +[:mouse_move, 705, 298, 2, 530, 853] +[:mouse_move, 708, 298, 2, 531, 854] +[:mouse_move, 714, 299, 2, 532, 855] +[:mouse_move, 718, 301, 2, 533, 856] +[:mouse_move, 725, 303, 2, 534, 857] +[:mouse_move, 729, 304, 2, 535, 858] +[:mouse_move, 736, 306, 2, 536, 859] +[:mouse_move, 743, 309, 2, 537, 861] +[:mouse_move, 745, 309, 2, 538, 862] +[:mouse_move, 747, 309, 2, 539, 863] +[:mouse_move, 748, 309, 2, 540, 864] +[:mouse_move, 749, 309, 2, 541, 866] +[:mouse_move, 750, 309, 2, 542, 867] +[:mouse_move, 762, 316, 2, 543, 889] +[:mouse_move, 793, 340, 2, 544, 890] +[:mouse_move, 824, 367, 2, 545, 891] +[:mouse_move, 905, 445, 2, 546, 892] +[:mouse_move, 926, 465, 2, 547, 893] +[:mouse_move, 966, 506, 2, 548, 894] +[:mouse_move, 1010, 548, 2, 549, 895] +[:mouse_move, 1033, 569, 2, 550, 896] +[:mouse_move, 1072, 604, 2, 551, 897] +[:mouse_move, 1087, 619, 2, 552, 898] +[:mouse_move, 1113, 647, 2, 553, 899] +[:mouse_move, 1118, 653, 2, 554, 900] +[:mouse_move, 1134, 670, 2, 555, 901] +[:mouse_move, 1136, 673, 2, 556, 902] +[:mouse_move, 1144, 680, 2, 557, 903] +[:mouse_move, 1150, 685, 2, 558, 904] +[:mouse_move, 1153, 687, 2, 559, 905] +[:mouse_move, 1155, 687, 2, 560, 918] +[:mouse_move, 1160, 687, 2, 561, 919] +[:mouse_move, 1173, 688, 2, 562, 920] +[:mouse_move, 1179, 691, 2, 563, 921] +[:mouse_move, 1197, 698, 2, 564, 922] +[:mouse_move, 1203, 701, 2, 565, 923] +[:mouse_move, 1216, 705, 2, 566, 924] +[:mouse_move, 1222, 708, 2, 567, 925] +[:mouse_move, 1231, 711, 2, 568, 926] +[:mouse_move, 1238, 712, 2, 569, 927] +[:mouse_move, 1245, 713, 2, 570, 928] +[:mouse_move, 1249, 713, 2, 571, 929] +[:mouse_move, 1254, 713, 2, 572, 930] +[:mouse_move, 1256, 713, 2, 573, 931] +[:mouse_move, 1259, 713, 2, 574, 932] +[:mouse_move, 1261, 713, 2, 575, 934] +[:mouse_move, 1261, 712, 2, 576, 936] +[:mouse_move, 1261, 710, 2, 577, 938] +[:mouse_move, 1261, 709, 2, 578, 939] +[:mouse_move, 1261, 707, 2, 579, 940] +[:mouse_move, 1261, 706, 2, 580, 941] +[:mouse_move, 1261, 703, 2, 581, 942] +[:mouse_move, 1261, 702, 2, 582, 943] +[:mouse_move, 1261, 700, 2, 583, 944] +[:mouse_move, 1261, 699, 2, 584, 945] +[:mouse_move, 1261, 697, 2, 585, 947] +[:mouse_move, 1261, 696, 2, 586, 949] +[:mouse_move, 1261, 695, 2, 587, 951] +[:mouse_button_pressed, 1, 0, 1, 588, 953] +[:mouse_button_up, 1, 0, 1, 589, 959] +[:mouse_move, 1243, 677, 2, 590, 974] +[:mouse_move, 1229, 666, 2, 591, 975] +[:mouse_move, 1186, 633, 2, 592, 976] +[:mouse_move, 1134, 597, 2, 593, 977] +[:mouse_move, 1024, 527, 2, 594, 978] +[:mouse_move, 1003, 516, 2, 595, 979] +[:mouse_move, 924, 478, 2, 596, 980] +[:mouse_move, 911, 474, 2, 597, 981] +[:mouse_move, 851, 449, 2, 598, 982] +[:mouse_move, 829, 440, 2, 599, 983] +[:mouse_move, 804, 427, 2, 600, 984] +[:mouse_move, 793, 422, 2, 601, 985] +[:mouse_move, 782, 416, 2, 602, 986] +[:mouse_move, 771, 409, 2, 603, 987] +[:mouse_move, 759, 399, 2, 604, 988] +[:mouse_move, 754, 395, 2, 605, 989] +[:mouse_move, 746, 389, 2, 606, 990] +[:mouse_move, 742, 386, 2, 607, 991] +[:mouse_move, 733, 380, 2, 608, 992] +[:mouse_move, 727, 377, 2, 609, 993] +[:mouse_move, 709, 368, 2, 610, 994] +[:mouse_move, 699, 363, 2, 611, 995] +[:mouse_move, 686, 355, 2, 612, 996] +[:mouse_move, 679, 350, 2, 613, 997] +[:mouse_move, 672, 346, 2, 614, 998] +[:mouse_move, 669, 343, 2, 615, 999] +[:mouse_move, 667, 341, 2, 616, 1000] +[:mouse_move, 663, 339, 2, 617, 1001] +[:mouse_move, 662, 337, 2, 618, 1002] +[:mouse_move, 658, 332, 2, 619, 1003] +[:mouse_move, 655, 329, 2, 620, 1004] +[:mouse_move, 652, 325, 2, 621, 1005] +[:mouse_move, 650, 322, 2, 622, 1006] +[:mouse_move, 646, 318, 2, 623, 1007] +[:mouse_move, 645, 317, 2, 624, 1008] +[:mouse_move, 644, 315, 2, 625, 1009] +[:mouse_move, 643, 314, 2, 626, 1010] +[:mouse_move, 640, 313, 2, 627, 1011] +[:mouse_move, 639, 312, 2, 628, 1012] +[:mouse_move, 636, 310, 2, 629, 1013] +[:mouse_move, 635, 310, 2, 630, 1014] +[:mouse_move, 634, 309, 2, 631, 1015] +[:mouse_move, 633, 308, 2, 632, 1016] +[:mouse_move, 632, 308, 2, 633, 1017] +[:mouse_move, 633, 308, 2, 634, 1024] +[:mouse_move, 634, 308, 2, 635, 1025] +[:mouse_move, 635, 308, 2, 636, 1027] +[:mouse_move, 637, 308, 2, 637, 1028] +[:mouse_move, 639, 308, 2, 638, 1029] +[:mouse_move, 643, 308, 2, 639, 1030] +[:mouse_move, 646, 308, 2, 640, 1031] +[:mouse_move, 650, 308, 2, 641, 1032] +[:mouse_move, 652, 308, 2, 642, 1033] +[:mouse_move, 658, 308, 2, 643, 1034] +[:mouse_move, 661, 308, 2, 644, 1035] +[:mouse_move, 670, 308, 2, 645, 1036] +[:mouse_move, 674, 308, 2, 646, 1037] +[:mouse_move, 680, 307, 2, 647, 1038] +[:mouse_move, 683, 307, 2, 648, 1039] +[:mouse_move, 691, 306, 2, 649, 1040] +[:mouse_move, 694, 305, 2, 650, 1041] +[:mouse_move, 702, 304, 2, 651, 1042] +[:mouse_move, 705, 304, 2, 652, 1043] +[:mouse_move, 712, 303, 2, 653, 1044] +[:mouse_move, 715, 303, 2, 654, 1045] +[:mouse_move, 722, 303, 2, 655, 1046] +[:mouse_move, 727, 303, 2, 656, 1047] +[:mouse_move, 735, 303, 2, 657, 1048] +[:mouse_move, 740, 303, 2, 658, 1049] +[:mouse_move, 748, 303, 2, 659, 1050] +[:mouse_move, 750, 303, 2, 660, 1051] +[:mouse_move, 756, 303, 2, 661, 1052] +[:mouse_move, 758, 304, 2, 662, 1053] +[:mouse_move, 760, 304, 2, 663, 1054] +[:mouse_move, 762, 304, 2, 664, 1055] +[:mouse_move, 763, 304, 2, 665, 1056] +[:mouse_move, 764, 304, 2, 666, 1057] +[:mouse_move, 756, 304, 2, 667, 1075] +[:mouse_move, 744, 306, 2, 668, 1076] +[:mouse_move, 707, 310, 2, 669, 1077] +[:mouse_move, 682, 311, 2, 670, 1078] +[:mouse_move, 548, 334, 2, 671, 1079] +[:mouse_move, 472, 350, 2, 672, 1080] +[:mouse_move, 432, 363, 2, 673, 1081] +[:mouse_move, 289, 420, 2, 674, 1082] +[:mouse_move, 226, 452, 2, 675, 1083] +[:mouse_move, 156, 504, 2, 676, 1084] +[:mouse_move, 124, 536, 2, 677, 1085] +[:mouse_move, 97, 576, 2, 678, 1086] +[:mouse_move, 93, 584, 2, 679, 1087] +[:mouse_move, 84, 606, 2, 680, 1088] +[:mouse_move, 81, 610, 2, 681, 1100] +[:mouse_move, 75, 620, 2, 682, 1101] +[:mouse_move, 59, 642, 2, 683, 1102] +[:mouse_move, 52, 649, 2, 684, 1103] +[:mouse_move, 45, 658, 2, 685, 1104] +[:mouse_move, 39, 666, 2, 686, 1105] +[:mouse_move, 31, 676, 2, 687, 1106] +[:mouse_move, 30, 678, 2, 688, 1107] +[:mouse_move, 28, 681, 2, 689, 1108] +[:mouse_move, 27, 682, 2, 690, 1109] +[:mouse_move, 27, 683, 2, 691, 1111] +[:mouse_move, 27, 684, 2, 692, 1113] +[:mouse_move, 27, 685, 2, 693, 1116] +[:mouse_move, 27, 686, 2, 694, 1117] +[:mouse_move, 27, 689, 2, 695, 1119] +[:mouse_move, 26, 690, 2, 696, 1120] +[:mouse_move, 23, 694, 2, 697, 1121] +[:mouse_move, 22, 695, 2, 698, 1122] +[:mouse_move, 18, 697, 2, 699, 1123] +[:mouse_move, 17, 698, 2, 700, 1124] +[:mouse_move, 16, 699, 2, 701, 1125] +[:mouse_move, 15, 699, 2, 702, 1126] +[:mouse_move, 15, 700, 2, 703, 1127] +[:mouse_move, 15, 701, 2, 704, 1131] +[:mouse_button_pressed, 1, 0, 1, 705, 1141] +[:mouse_button_up, 1, 0, 1, 706, 1148] +[:mouse_move, 21, 699, 2, 707, 1160] +[:mouse_move, 31, 694, 2, 708, 1161] +[:mouse_move, 77, 673, 2, 709, 1162] +[:mouse_move, 153, 638, 2, 710, 1163] +[:mouse_move, 225, 604, 2, 711, 1164] +[:mouse_move, 406, 525, 2, 712, 1165] +[:mouse_move, 512, 479, 2, 713, 1166] +[:mouse_move, 655, 417, 2, 714, 1167] +[:mouse_move, 737, 382, 2, 715, 1168] +[:mouse_move, 788, 360, 2, 716, 1169] +[:mouse_move, 831, 339, 2, 717, 1170] +[:mouse_move, 849, 332, 2, 718, 1171] +[:mouse_move, 864, 325, 2, 719, 1172] +[:mouse_move, 879, 317, 2, 720, 1173] +[:mouse_move, 880, 316, 2, 721, 1174] +[:mouse_move, 877, 316, 2, 722, 1175] +[:mouse_move, 875, 316, 2, 723, 1176] +[:mouse_move, 871, 316, 2, 724, 1177] +[:mouse_move, 866, 315, 2, 725, 1178] +[:mouse_move, 855, 314, 2, 726, 1179] +[:mouse_move, 842, 313, 2, 727, 1180] +[:mouse_move, 808, 313, 2, 728, 1181] +[:mouse_move, 783, 313, 2, 729, 1182] +[:mouse_move, 728, 313, 2, 730, 1183] +[:mouse_move, 715, 313, 2, 731, 1184] +[:mouse_move, 670, 313, 2, 732, 1185] +[:mouse_move, 652, 313, 2, 733, 1186] +[:mouse_move, 641, 313, 2, 734, 1187] +[:mouse_move, 634, 313, 2, 735, 1188] +[:mouse_move, 625, 313, 2, 736, 1189] +[:mouse_move, 623, 313, 2, 737, 1190] +[:mouse_move, 622, 313, 2, 738, 1191] +[:mouse_move, 621, 312, 2, 739, 1192] +[:mouse_move, 622, 312, 2, 740, 1201] +[:mouse_move, 624, 312, 2, 741, 1202] +[:mouse_move, 626, 312, 2, 742, 1203] +[:mouse_move, 632, 311, 2, 743, 1204] +[:mouse_move, 636, 311, 2, 744, 1205] +[:mouse_move, 647, 311, 2, 745, 1206] +[:mouse_move, 653, 311, 2, 746, 1207] +[:mouse_move, 665, 310, 2, 747, 1208] +[:mouse_move, 669, 310, 2, 748, 1209] +[:mouse_move, 676, 310, 2, 749, 1210] +[:mouse_move, 683, 310, 2, 750, 1211] +[:mouse_move, 687, 310, 2, 751, 1212] +[:mouse_move, 689, 310, 2, 752, 1213] +[:mouse_move, 693, 310, 2, 753, 1214] +[:mouse_move, 696, 310, 2, 754, 1215] +[:mouse_move, 702, 310, 2, 755, 1216] +[:mouse_move, 706, 310, 2, 756, 1217] +[:mouse_move, 709, 310, 2, 757, 1218] +[:mouse_move, 714, 310, 2, 758, 1219] +[:mouse_move, 716, 310, 2, 759, 1220] +[:mouse_move, 721, 310, 2, 760, 1221] +[:mouse_move, 724, 310, 2, 761, 1222] +[:mouse_move, 727, 310, 2, 762, 1223] +[:mouse_move, 728, 310, 2, 763, 1224] +[:mouse_move, 730, 310, 2, 764, 1225] +[:mouse_move, 731, 310, 2, 765, 1227] +[:mouse_move, 730, 310, 2, 766, 1245] +[:mouse_move, 687, 306, 2, 767, 1246] +[:mouse_move, 658, 303, 2, 768, 1247] +[:mouse_move, 570, 289, 2, 769, 1248] +[:mouse_move, 503, 280, 2, 770, 1249] +[:mouse_move, 371, 259, 2, 771, 1250] +[:mouse_move, 345, 254, 2, 772, 1251] +[:mouse_move, 248, 229, 2, 773, 1252] +[:mouse_move, 212, 215, 2, 774, 1253] +[:mouse_move, 177, 195, 2, 775, 1254] +[:mouse_move, 159, 184, 2, 776, 1255] +[:mouse_move, 141, 168, 2, 777, 1256] +[:mouse_move, 123, 151, 2, 778, 1257] +[:mouse_move, 96, 121, 2, 779, 1258] +[:mouse_move, 91, 114, 2, 780, 1259] +[:mouse_move, 71, 87, 2, 781, 1260] +[:mouse_move, 62, 74, 2, 782, 1261] +[:mouse_move, 51, 59, 2, 783, 1262] +[:mouse_move, 45, 52, 2, 784, 1263] +[:mouse_move, 36, 40, 2, 785, 1264] +[:mouse_move, 34, 39, 2, 786, 1279] +[:mouse_move, 32, 39, 2, 787, 1280] +[:mouse_move, 30, 37, 2, 788, 1281] +[:mouse_move, 29, 35, 2, 789, 1282] +[:mouse_move, 26, 32, 2, 790, 1283] +[:mouse_move, 25, 31, 2, 791, 1284] +[:mouse_move, 24, 30, 2, 792, 1285] +[:mouse_move, 23, 29, 2, 793, 1286] +[:mouse_move, 22, 27, 2, 794, 1287] +[:mouse_move, 22, 26, 2, 795, 1289] +[:mouse_move, 21, 25, 2, 796, 1290] +[:mouse_move, 21, 23, 2, 797, 1291] +[:mouse_move, 21, 22, 2, 798, 1292] +[:mouse_move, 20, 20, 2, 799, 1293] +[:mouse_move, 20, 19, 2, 800, 1295] +[:mouse_move, 19, 19, 2, 801, 1296] +[:mouse_move, 19, 18, 2, 802, 1297] +[:mouse_move, 18, 17, 2, 803, 1298] +[:mouse_move, 17, 16, 2, 804, 1299] +[:mouse_move, 16, 15, 2, 805, 1300] +[:mouse_move, 15, 14, 2, 806, 1302] +[:mouse_move, 15, 13, 2, 807, 1303] +[:mouse_move, 14, 13, 2, 808, 1304] +[:mouse_move, 14, 12, 2, 809, 1307] +[:mouse_button_pressed, 1, 0, 1, 810, 1322] +[:mouse_button_up, 1, 0, 1, 811, 1328] +[:mouse_move, 36, 23, 2, 812, 1345] +[:mouse_move, 57, 34, 2, 813, 1346] +[:mouse_move, 231, 131, 2, 814, 1347] +[:mouse_move, 347, 196, 2, 815, 1348] +[:mouse_move, 530, 298, 2, 816, 1349] +[:mouse_move, 582, 323, 2, 817, 1350] +[:mouse_move, 707, 381, 2, 818, 1351] +[:mouse_move, 769, 405, 2, 819, 1352] +[:mouse_move, 786, 409, 2, 820, 1353] +[:mouse_move, 807, 414, 2, 821, 1354] +[:mouse_move, 826, 420, 2, 822, 1355] +[:mouse_move, 844, 425, 2, 823, 1356] +[:mouse_move, 850, 426, 2, 824, 1357] +[:mouse_move, 850, 425, 2, 825, 1358] +[:mouse_move, 847, 423, 2, 826, 1359] +[:mouse_move, 838, 418, 2, 827, 1360] +[:mouse_move, 833, 414, 2, 828, 1361] +[:mouse_move, 816, 403, 2, 829, 1362] +[:mouse_move, 809, 398, 2, 830, 1363] +[:mouse_move, 781, 378, 2, 831, 1364] +[:mouse_move, 773, 373, 2, 832, 1365] +[:mouse_move, 745, 360, 2, 833, 1366] +[:mouse_move, 730, 354, 2, 834, 1367] +[:mouse_move, 709, 348, 2, 835, 1368] +[:mouse_move, 697, 345, 2, 836, 1369] +[:mouse_move, 685, 342, 2, 837, 1370] +[:mouse_move, 680, 342, 2, 838, 1371] +[:mouse_move, 672, 340, 2, 839, 1372] +[:mouse_move, 670, 340, 2, 840, 1373] +[:mouse_move, 666, 340, 2, 841, 1374] +[:mouse_move, 665, 339, 2, 842, 1375] +[:mouse_move, 661, 339, 2, 843, 1376] +[:mouse_move, 660, 338, 2, 844, 1377] +[:mouse_move, 655, 337, 2, 845, 1378] +[:mouse_move, 652, 336, 2, 846, 1379] +[:mouse_move, 650, 333, 2, 847, 1380] +[:mouse_move, 644, 328, 2, 848, 1381] +[:mouse_move, 642, 326, 2, 849, 1382] +[:mouse_move, 638, 322, 2, 850, 1383] +[:mouse_move, 637, 321, 2, 851, 1384] +[:mouse_move, 636, 318, 2, 852, 1385] +[:mouse_move, 635, 318, 2, 853, 1386] +[:mouse_move, 635, 317, 2, 854, 1387] +[:mouse_move, 636, 317, 2, 855, 1392] +[:mouse_move, 642, 317, 2, 856, 1393] +[:mouse_move, 648, 317, 2, 857, 1394] +[:mouse_move, 658, 318, 2, 858, 1395] +[:mouse_move, 664, 318, 2, 859, 1396] +[:mouse_move, 671, 318, 2, 860, 1397] +[:mouse_move, 676, 318, 2, 861, 1398] +[:mouse_move, 684, 318, 2, 862, 1399] +[:mouse_move, 687, 318, 2, 863, 1400] +[:mouse_move, 693, 318, 2, 864, 1401] +[:mouse_move, 694, 318, 2, 865, 1402] +[:mouse_move, 701, 318, 2, 866, 1403] +[:mouse_move, 702, 318, 2, 867, 1404] +[:mouse_move, 708, 318, 2, 868, 1405] +[:mouse_move, 711, 318, 2, 869, 1406] +[:mouse_move, 713, 318, 2, 870, 1407] +[:mouse_move, 718, 318, 2, 871, 1408] +[:mouse_move, 721, 318, 2, 872, 1409] +[:mouse_move, 726, 317, 2, 873, 1410] +[:mouse_move, 728, 317, 2, 874, 1411] +[:mouse_move, 731, 317, 2, 875, 1412] +[:mouse_move, 733, 317, 2, 876, 1413] +[:mouse_move, 736, 317, 2, 877, 1414] +[:mouse_move, 738, 317, 2, 878, 1415] +[:mouse_move, 739, 317, 2, 879, 1416] +[:mouse_move, 740, 317, 2, 880, 1417] +[:mouse_move, 741, 317, 2, 881, 1418] +[:mouse_move, 705, 270, 2, 882, 1455] +[:mouse_move, 659, 221, 2, 883, 1456] +[:mouse_move, 515, 112, 2, 884, 1457] +[:mouse_move, 474, 92, 2, 885, 1458] +[:mouse_move, 315, 31, 2, 886, 1459] +[:mouse_move, 238, 13, 2, 887, 1460] +[:mouse_move, 168, 3, 2, 888, 1461] +[:mouse_move, 92, 0, 2, 889, 1462] diff --git a/samples/02_input_basics/03_mouse_point_to_rect/app/main.rb b/samples/02_input_basics/03_mouse_point_to_rect/app/main.rb new file mode 100644 index 0000000..7dd627f --- /dev/null +++ b/samples/02_input_basics/03_mouse_point_to_rect/app/main.rb @@ -0,0 +1,90 @@ +=begin + +APIs that haven't been encountered in a previous sample apps: + +- args.outputus.borders: An array. Values in this array will be rendered as + unfilled rectangles on the screen. +- ARRAY#inside_rect?: An array with at least two values is considered a point. An array + with at least four values is considered a rect. The inside_rect? function returns true + or false depending on if the point is inside the rect. + + ``` + # Point: x: 100, y: 100 + # Rect: x: 0, y: 0, w: 500, h: 500 + # Result: true + + [100, 100].inside_rect? [0, 0, 500, 500] + ``` + + ``` + # Point: x: 100, y: 100 + # Rect: x: 300, y: 300, w: 100, h: 100 + # Result: false + + [100, 100].inside_rect? [300, 300, 100, 100] + ``` + +- args.inputs.mouse.click.point.created_at: The frame the mouse click occurred in. +- args.inputs.mouse.click.point.created_at_elapsed: How many frames have passed + since the click event. + +=end + +# To determine whether a point is in a rect +# Use point.inside_rect? rect + +# This is useful to determine if a click occurred in a rect + +def tick args + tick_instructions args, "Sample app shows how to determing if a click happened inside a rectangle." + + x = 460 + + args.outputs.labels << small_label(args, x, 15, "Click inside the blue box maybe ---->") + + box = [785, 370, 50, 50, 0, 0, 170] + args.outputs.borders << box + + # Saves the most recent click into args.state + # Unlike the other components of args, + # args.state does not reset every tick. + if args.inputs.mouse.click + args.state.last_mouse_click = args.inputs.mouse.click + end + + if args.state.last_mouse_click + if args.state.last_mouse_click.point.inside_rect? box + args.outputs.labels << small_label(args, x, 16, "Mouse click happened *inside* the box.") + else + args.outputs.labels << small_label(args, x, 16, "Mouse click happened *outside* the box.") + end + else + args.outputs.labels << small_label(args, x, 16, "Mouse click has not occurred yet.") + end +end + +def small_label args, x, row, message + [x, row_to_px(args, row), message, small_font] +end + +def small_font + [-2, 0, 0, 0, 0, 255] +end + +def row_to_px args, row_number + args.grid.top.shift_down(5).shift_down(20 * row_number) +end + +def tick_instructions args, text, y = 715 + return if args.state.key_event_occurred + if args.inputs.mouse.click || + args.inputs.keyboard.directional_vector || + args.inputs.keyboard.key_down.enter || + args.inputs.keyboard.key_down.escape + args.state.key_event_occurred = true + end + + args.outputs.debug << [0, y - 50, 1280, 60].solid + args.outputs.debug << [640, y, text, 1, 1, 255, 255, 255].label + args.outputs.debug << [640, y - 25, "(click to dismiss instructions)" , -2, 1, 255, 255, 255].label +end diff --git a/samples/02_input_basics/03_mouse_point_to_rect/license-for-sample.txt b/samples/02_input_basics/03_mouse_point_to_rect/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/02_input_basics/03_mouse_point_to_rect/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/02_input_basics/03_mouse_point_to_rect/replay.txt b/samples/02_input_basics/03_mouse_point_to_rect/replay.txt new file mode 100644 index 0000000..8da3bad --- /dev/null +++ b/samples/02_input_basics/03_mouse_point_to_rect/replay.txt @@ -0,0 +1,515 @@ +replay_version 2.0 +stopped_at 796 +seed 100 +recorded_at Sun Sep 29 21:34:41 2019 +[:mouse_move, 1191, 0, 2, 1, 90] +[:mouse_move, 1115, 68, 2, 2, 90] +[:mouse_move, 1039, 143, 2, 3, 91] +[:mouse_move, 963, 216, 2, 4, 92] +[:mouse_move, 928, 249, 2, 5, 92] +[:mouse_move, 866, 308, 2, 6, 93] +[:mouse_move, 843, 329, 2, 7, 94] +[:mouse_move, 787, 381, 2, 8, 95] +[:mouse_move, 776, 391, 2, 9, 96] +[:mouse_move, 755, 410, 2, 10, 97] +[:mouse_move, 745, 418, 2, 11, 98] +[:mouse_move, 738, 424, 2, 12, 99] +[:mouse_move, 736, 425, 2, 13, 100] +[:mouse_move, 736, 424, 2, 14, 103] +[:mouse_move, 736, 423, 2, 15, 105] +[:mouse_move, 736, 422, 2, 16, 106] +[:mouse_move, 736, 421, 2, 17, 107] +[:mouse_move, 736, 419, 2, 18, 107] +[:mouse_move, 736, 416, 2, 19, 108] +[:mouse_move, 735, 413, 2, 20, 109] +[:mouse_move, 735, 411, 2, 21, 109] +[:mouse_move, 734, 408, 2, 22, 110] +[:mouse_move, 732, 404, 2, 23, 111] +[:mouse_move, 731, 401, 2, 24, 111] +[:mouse_move, 729, 393, 2, 25, 112] +[:mouse_move, 728, 385, 2, 26, 113] +[:mouse_move, 728, 376, 2, 27, 113] +[:mouse_move, 729, 367, 2, 28, 114] +[:mouse_move, 734, 355, 2, 29, 115] +[:mouse_move, 741, 344, 2, 30, 115] +[:mouse_move, 748, 333, 2, 31, 116] +[:mouse_move, 752, 329, 2, 32, 117] +[:mouse_move, 755, 326, 2, 33, 117] +[:mouse_move, 758, 322, 2, 34, 118] +[:mouse_move, 760, 319, 2, 35, 119] +[:mouse_move, 762, 317, 2, 36, 119] +[:mouse_move, 762, 316, 2, 37, 120] +[:mouse_move, 755, 318, 2, 38, 122] +[:mouse_move, 748, 321, 2, 39, 123] +[:mouse_move, 721, 326, 2, 40, 124] +[:mouse_move, 705, 329, 2, 41, 125] +[:mouse_move, 674, 330, 2, 42, 126] +[:mouse_move, 645, 328, 2, 43, 127] +[:mouse_move, 602, 310, 2, 44, 128] +[:mouse_move, 590, 304, 2, 45, 129] +[:mouse_move, 577, 298, 2, 46, 130] +[:mouse_move, 567, 293, 2, 47, 131] +[:mouse_move, 555, 287, 2, 48, 132] +[:mouse_move, 553, 286, 2, 49, 133] +[:mouse_move, 551, 284, 2, 50, 134] +[:mouse_move, 550, 284, 2, 51, 134] +[:mouse_move, 550, 285, 2, 52, 140] +[:mouse_move, 550, 286, 2, 53, 141] +[:mouse_move, 549, 288, 2, 54, 142] +[:mouse_move, 548, 291, 2, 55, 142] +[:mouse_move, 546, 295, 2, 56, 143] +[:mouse_move, 542, 302, 2, 57, 144] +[:mouse_move, 539, 305, 2, 58, 144] +[:mouse_move, 535, 311, 2, 59, 145] +[:mouse_move, 530, 317, 2, 60, 146] +[:mouse_move, 524, 321, 2, 61, 146] +[:mouse_move, 518, 327, 2, 62, 147] +[:mouse_move, 513, 331, 2, 63, 148] +[:mouse_move, 507, 335, 2, 64, 148] +[:mouse_move, 504, 336, 2, 65, 149] +[:mouse_move, 500, 338, 2, 66, 150] +[:mouse_move, 494, 341, 2, 67, 151] +[:mouse_move, 492, 342, 2, 68, 152] +[:mouse_move, 491, 342, 2, 69, 152] +[:mouse_move, 489, 342, 2, 70, 153] +[:mouse_move, 486, 343, 2, 71, 154] +[:mouse_move, 482, 343, 2, 72, 155] +[:mouse_move, 480, 343, 2, 73, 156] +[:mouse_move, 477, 343, 2, 74, 157] +[:mouse_move, 475, 343, 2, 75, 158] +[:mouse_move, 473, 343, 2, 76, 159] +[:mouse_move, 472, 343, 2, 77, 160] +[:mouse_move, 471, 343, 2, 78, 162] +[:mouse_move, 471, 342, 2, 79, 163] +[:mouse_move, 471, 341, 2, 80, 167] +[:mouse_move, 471, 340, 2, 81, 169] +[:mouse_move, 472, 340, 2, 82, 171] +[:mouse_move, 473, 340, 2, 83, 172] +[:mouse_move, 473, 339, 2, 84, 173] +[:mouse_move, 474, 339, 2, 85, 174] +[:mouse_move, 475, 339, 2, 86, 175] +[:mouse_move, 476, 339, 2, 87, 178] +[:mouse_move, 479, 338, 2, 88, 180] +[:mouse_move, 482, 338, 2, 89, 181] +[:mouse_move, 489, 336, 2, 90, 182] +[:mouse_move, 493, 335, 2, 91, 183] +[:mouse_move, 502, 334, 2, 92, 184] +[:mouse_move, 505, 334, 2, 93, 185] +[:mouse_move, 515, 333, 2, 94, 186] +[:mouse_move, 525, 333, 2, 95, 187] +[:mouse_move, 529, 333, 2, 96, 188] +[:mouse_move, 536, 333, 2, 97, 188] +[:mouse_move, 539, 333, 2, 98, 189] +[:mouse_move, 544, 332, 2, 99, 190] +[:mouse_move, 548, 332, 2, 100, 190] +[:mouse_move, 555, 332, 2, 101, 191] +[:mouse_move, 559, 332, 2, 102, 192] +[:mouse_move, 563, 332, 2, 103, 192] +[:mouse_move, 568, 332, 2, 104, 193] +[:mouse_move, 572, 332, 2, 105, 194] +[:mouse_move, 577, 332, 2, 106, 194] +[:mouse_move, 579, 332, 2, 107, 195] +[:mouse_move, 583, 332, 2, 108, 196] +[:mouse_move, 585, 332, 2, 109, 196] +[:mouse_move, 588, 332, 2, 110, 197] +[:mouse_move, 589, 332, 2, 111, 198] +[:mouse_move, 591, 332, 2, 112, 198] +[:mouse_move, 594, 332, 2, 113, 199] +[:mouse_move, 597, 332, 2, 114, 200] +[:mouse_move, 600, 332, 2, 115, 200] +[:mouse_move, 602, 332, 2, 116, 201] +[:mouse_move, 605, 332, 2, 117, 202] +[:mouse_move, 610, 332, 2, 118, 202] +[:mouse_move, 614, 332, 2, 119, 203] +[:mouse_move, 618, 332, 2, 120, 204] +[:mouse_move, 634, 333, 2, 121, 205] +[:mouse_move, 638, 334, 2, 122, 206] +[:mouse_move, 654, 337, 2, 123, 207] +[:mouse_move, 660, 338, 2, 124, 208] +[:mouse_move, 675, 340, 2, 125, 209] +[:mouse_move, 681, 340, 2, 126, 210] +[:mouse_move, 688, 341, 2, 127, 211] +[:mouse_move, 692, 341, 2, 128, 212] +[:mouse_move, 696, 341, 2, 129, 212] +[:mouse_move, 698, 341, 2, 130, 213] +[:mouse_move, 700, 340, 2, 131, 214] +[:mouse_move, 702, 340, 2, 132, 215] +[:mouse_move, 703, 339, 2, 133, 215] +[:mouse_move, 704, 339, 2, 134, 216] +[:mouse_move, 705, 338, 2, 135, 217] +[:mouse_move, 706, 338, 2, 136, 217] +[:mouse_move, 707, 338, 2, 137, 220] +[:mouse_move, 707, 337, 2, 138, 221] +[:mouse_move, 704, 337, 2, 139, 242] +[:mouse_move, 697, 337, 2, 140, 242] +[:mouse_move, 683, 337, 2, 141, 243] +[:mouse_move, 666, 337, 2, 142, 244] +[:mouse_move, 655, 337, 2, 143, 244] +[:mouse_move, 638, 337, 2, 144, 245] +[:mouse_move, 619, 337, 2, 145, 246] +[:mouse_move, 602, 338, 2, 146, 246] +[:mouse_move, 586, 340, 2, 147, 247] +[:mouse_move, 572, 342, 2, 148, 248] +[:mouse_move, 559, 344, 2, 149, 248] +[:mouse_move, 547, 347, 2, 150, 249] +[:mouse_move, 542, 348, 2, 151, 250] +[:mouse_move, 532, 349, 2, 152, 250] +[:mouse_move, 525, 351, 2, 153, 251] +[:mouse_move, 517, 352, 2, 154, 252] +[:mouse_move, 512, 352, 2, 155, 252] +[:mouse_move, 506, 353, 2, 156, 253] +[:mouse_move, 501, 353, 2, 157, 254] +[:mouse_move, 495, 354, 2, 158, 254] +[:mouse_move, 490, 354, 2, 159, 255] +[:mouse_move, 488, 354, 2, 160, 256] +[:mouse_move, 484, 354, 2, 161, 256] +[:mouse_move, 481, 354, 2, 162, 257] +[:mouse_move, 480, 354, 2, 163, 258] +[:mouse_move, 477, 354, 2, 164, 259] +[:mouse_move, 476, 354, 2, 165, 260] +[:mouse_move, 474, 354, 2, 166, 261] +[:mouse_move, 473, 354, 2, 167, 262] +[:mouse_move, 471, 354, 2, 168, 263] +[:mouse_move, 470, 354, 2, 169, 265] +[:mouse_move, 470, 355, 2, 170, 267] +[:mouse_move, 473, 355, 2, 171, 269] +[:mouse_move, 481, 356, 2, 172, 269] +[:mouse_move, 492, 357, 2, 173, 270] +[:mouse_move, 508, 357, 2, 174, 271] +[:mouse_move, 519, 357, 2, 175, 271] +[:mouse_move, 536, 357, 2, 176, 272] +[:mouse_move, 544, 357, 2, 177, 273] +[:mouse_move, 556, 357, 2, 178, 273] +[:mouse_move, 568, 357, 2, 179, 274] +[:mouse_move, 578, 355, 2, 180, 275] +[:mouse_move, 588, 355, 2, 181, 275] +[:mouse_move, 597, 353, 2, 182, 276] +[:mouse_move, 605, 353, 2, 183, 277] +[:mouse_move, 612, 353, 2, 184, 277] +[:mouse_move, 619, 352, 2, 185, 278] +[:mouse_move, 625, 352, 2, 186, 279] +[:mouse_move, 631, 352, 2, 187, 279] +[:mouse_move, 637, 352, 2, 188, 280] +[:mouse_move, 642, 352, 2, 189, 281] +[:mouse_move, 647, 352, 2, 190, 281] +[:mouse_move, 652, 352, 2, 191, 282] +[:mouse_move, 659, 352, 2, 192, 283] +[:mouse_move, 665, 351, 2, 193, 283] +[:mouse_move, 671, 351, 2, 194, 284] +[:mouse_move, 673, 350, 2, 195, 285] +[:mouse_move, 679, 349, 2, 196, 286] +[:mouse_move, 681, 348, 2, 197, 287] +[:mouse_move, 683, 347, 2, 198, 288] +[:mouse_move, 684, 347, 2, 199, 289] +[:mouse_move, 687, 347, 2, 200, 298] +[:mouse_move, 691, 347, 2, 201, 299] +[:mouse_move, 698, 347, 2, 202, 300] +[:mouse_move, 714, 347, 2, 203, 300] +[:mouse_move, 728, 347, 2, 204, 301] +[:mouse_move, 738, 346, 2, 205, 302] +[:mouse_move, 752, 343, 2, 206, 302] +[:mouse_move, 759, 342, 2, 207, 303] +[:mouse_move, 770, 340, 2, 208, 304] +[:mouse_move, 779, 338, 2, 209, 304] +[:mouse_move, 782, 337, 2, 210, 305] +[:mouse_move, 794, 335, 2, 211, 306] +[:mouse_move, 796, 335, 2, 212, 306] +[:mouse_move, 801, 334, 2, 213, 307] +[:mouse_move, 804, 333, 2, 214, 308] +[:mouse_move, 806, 332, 2, 215, 308] +[:mouse_move, 808, 332, 2, 216, 309] +[:mouse_move, 810, 331, 2, 217, 310] +[:mouse_move, 811, 331, 2, 218, 310] +[:mouse_move, 812, 330, 2, 219, 311] +[:mouse_move, 813, 329, 2, 220, 313] +[:mouse_move, 814, 327, 2, 221, 315] +[:mouse_move, 814, 326, 2, 222, 316] +[:mouse_move, 814, 324, 2, 223, 317] +[:mouse_move, 815, 323, 2, 224, 319] +[:mouse_button_pressed, 1, 0, 1, 225, 326] +[:mouse_button_up, 1, 0, 1, 226, 334] +[:mouse_move, 815, 324, 2, 227, 367] +[:mouse_move, 814, 327, 2, 228, 369] +[:mouse_move, 811, 330, 2, 229, 370] +[:mouse_move, 800, 337, 2, 230, 371] +[:mouse_move, 791, 341, 2, 231, 372] +[:mouse_move, 753, 353, 2, 232, 373] +[:mouse_move, 743, 355, 2, 233, 374] +[:mouse_move, 708, 362, 2, 234, 375] +[:mouse_move, 692, 364, 2, 235, 376] +[:mouse_move, 676, 364, 2, 236, 377] +[:mouse_move, 656, 365, 2, 237, 378] +[:mouse_move, 645, 365, 2, 238, 379] +[:mouse_move, 628, 365, 2, 239, 380] +[:mouse_move, 623, 364, 2, 240, 381] +[:mouse_move, 612, 364, 2, 241, 382] +[:mouse_move, 610, 364, 2, 242, 383] +[:mouse_move, 600, 363, 2, 243, 384] +[:mouse_move, 599, 362, 2, 244, 385] +[:mouse_move, 595, 361, 2, 245, 386] +[:mouse_move, 594, 361, 2, 246, 387] +[:mouse_move, 593, 361, 2, 247, 388] +[:mouse_move, 597, 361, 2, 248, 392] +[:mouse_move, 601, 361, 2, 249, 393] +[:mouse_move, 609, 361, 2, 250, 394] +[:mouse_move, 612, 361, 2, 251, 395] +[:mouse_move, 620, 360, 2, 252, 396] +[:mouse_move, 626, 360, 2, 253, 397] +[:mouse_move, 633, 358, 2, 254, 398] +[:mouse_move, 637, 357, 2, 255, 399] +[:mouse_move, 646, 354, 2, 256, 400] +[:mouse_move, 650, 352, 2, 257, 401] +[:mouse_move, 658, 349, 2, 258, 402] +[:mouse_move, 662, 346, 2, 259, 403] +[:mouse_move, 663, 344, 2, 260, 404] +[:mouse_move, 671, 339, 2, 261, 405] +[:mouse_move, 672, 338, 2, 262, 406] +[:mouse_move, 677, 334, 2, 263, 407] +[:mouse_move, 678, 332, 2, 264, 408] +[:mouse_move, 681, 330, 2, 265, 409] +[:mouse_move, 681, 329, 2, 266, 410] +[:mouse_move, 683, 327, 2, 267, 411] +[:mouse_move, 684, 326, 2, 268, 412] +[:mouse_move, 685, 323, 2, 269, 413] +[:mouse_move, 685, 322, 2, 270, 414] +[:mouse_move, 686, 319, 2, 271, 415] +[:mouse_move, 686, 317, 2, 272, 416] +[:mouse_move, 686, 312, 2, 273, 417] +[:mouse_move, 685, 311, 2, 274, 418] +[:mouse_move, 680, 307, 2, 275, 419] +[:mouse_move, 677, 305, 2, 276, 420] +[:mouse_move, 672, 303, 2, 277, 421] +[:mouse_move, 669, 302, 2, 278, 422] +[:mouse_move, 663, 299, 2, 279, 423] +[:mouse_move, 658, 299, 2, 280, 424] +[:mouse_move, 652, 299, 2, 281, 425] +[:mouse_move, 649, 299, 2, 282, 426] +[:mouse_move, 645, 300, 2, 283, 427] +[:mouse_move, 642, 301, 2, 284, 428] +[:mouse_move, 639, 303, 2, 285, 429] +[:mouse_move, 637, 304, 2, 286, 430] +[:mouse_move, 633, 308, 2, 287, 431] +[:mouse_move, 631, 311, 2, 288, 432] +[:mouse_move, 629, 313, 2, 289, 433] +[:mouse_move, 623, 319, 2, 290, 434] +[:mouse_move, 620, 322, 2, 291, 435] +[:mouse_move, 616, 327, 2, 292, 436] +[:mouse_move, 614, 331, 2, 293, 437] +[:mouse_move, 611, 336, 2, 294, 438] +[:mouse_move, 610, 338, 2, 295, 439] +[:mouse_move, 609, 345, 2, 296, 440] +[:mouse_move, 610, 350, 2, 297, 441] +[:mouse_move, 617, 360, 2, 298, 442] +[:mouse_move, 620, 364, 2, 299, 443] +[:mouse_move, 629, 373, 2, 300, 444] +[:mouse_move, 634, 376, 2, 301, 445] +[:mouse_move, 640, 379, 2, 302, 446] +[:mouse_move, 646, 380, 2, 303, 447] +[:mouse_move, 651, 380, 2, 304, 448] +[:mouse_move, 654, 378, 2, 305, 449] +[:mouse_move, 659, 373, 2, 306, 450] +[:mouse_move, 662, 370, 2, 307, 451] +[:mouse_move, 667, 362, 2, 308, 452] +[:mouse_move, 670, 358, 2, 309, 453] +[:mouse_move, 673, 354, 2, 310, 454] +[:mouse_move, 676, 349, 2, 311, 455] +[:mouse_move, 679, 343, 2, 312, 456] +[:mouse_move, 680, 340, 2, 313, 457] +[:mouse_move, 681, 332, 2, 314, 458] +[:mouse_move, 682, 327, 2, 315, 459] +[:mouse_move, 682, 321, 2, 316, 460] +[:mouse_move, 682, 310, 2, 317, 461] +[:mouse_move, 682, 308, 2, 318, 462] +[:mouse_move, 681, 301, 2, 319, 463] +[:mouse_move, 679, 296, 2, 320, 464] +[:mouse_move, 674, 291, 2, 321, 465] +[:mouse_move, 670, 289, 2, 322, 466] +[:mouse_move, 659, 287, 2, 323, 467] +[:mouse_move, 654, 287, 2, 324, 468] +[:mouse_move, 644, 287, 2, 325, 469] +[:mouse_move, 642, 287, 2, 326, 470] +[:mouse_move, 633, 288, 2, 327, 471] +[:mouse_move, 629, 289, 2, 328, 472] +[:mouse_move, 623, 295, 2, 329, 473] +[:mouse_move, 619, 298, 2, 330, 474] +[:mouse_move, 613, 306, 2, 331, 475] +[:mouse_move, 611, 310, 2, 332, 476] +[:mouse_move, 608, 315, 2, 333, 477] +[:mouse_move, 608, 318, 2, 334, 478] +[:mouse_move, 607, 323, 2, 335, 479] +[:mouse_move, 607, 327, 2, 336, 480] +[:mouse_move, 607, 334, 2, 337, 481] +[:mouse_move, 608, 337, 2, 338, 482] +[:mouse_move, 613, 344, 2, 339, 483] +[:mouse_move, 617, 347, 2, 340, 484] +[:mouse_move, 625, 355, 2, 341, 485] +[:mouse_move, 630, 358, 2, 342, 486] +[:mouse_move, 635, 361, 2, 343, 487] +[:mouse_move, 648, 366, 2, 344, 488] +[:mouse_move, 654, 367, 2, 345, 489] +[:mouse_move, 667, 368, 2, 346, 490] +[:mouse_move, 672, 368, 2, 347, 491] +[:mouse_move, 681, 364, 2, 348, 492] +[:mouse_move, 684, 360, 2, 349, 493] +[:mouse_move, 690, 354, 2, 350, 494] +[:mouse_move, 690, 352, 2, 351, 495] +[:mouse_move, 693, 346, 2, 352, 496] +[:mouse_move, 693, 343, 2, 353, 497] +[:mouse_move, 694, 335, 2, 354, 498] +[:mouse_move, 693, 332, 2, 355, 499] +[:mouse_move, 687, 326, 2, 356, 500] +[:mouse_move, 684, 323, 2, 357, 501] +[:mouse_move, 679, 320, 2, 358, 502] +[:mouse_move, 677, 319, 2, 359, 503] +[:mouse_move, 674, 318, 2, 360, 504] +[:mouse_move, 674, 317, 2, 361, 505] +[:mouse_move, 675, 317, 2, 362, 519] +[:mouse_move, 682, 317, 2, 363, 520] +[:mouse_move, 700, 321, 2, 364, 521] +[:mouse_move, 710, 324, 2, 365, 522] +[:mouse_move, 726, 326, 2, 366, 523] +[:mouse_move, 741, 328, 2, 367, 524] +[:mouse_move, 774, 330, 2, 368, 525] +[:mouse_move, 779, 330, 2, 369, 526] +[:mouse_move, 799, 330, 2, 370, 527] +[:mouse_move, 808, 330, 2, 371, 528] +[:mouse_move, 832, 330, 2, 372, 529] +[:mouse_move, 835, 331, 2, 373, 530] +[:mouse_move, 850, 331, 2, 374, 531] +[:mouse_move, 852, 332, 2, 375, 532] +[:mouse_move, 860, 332, 2, 376, 533] +[:mouse_move, 863, 332, 2, 377, 534] +[:mouse_move, 868, 332, 2, 378, 535] +[:mouse_move, 870, 332, 2, 379, 536] +[:mouse_move, 873, 332, 2, 380, 537] +[:mouse_move, 875, 332, 2, 381, 538] +[:mouse_move, 878, 332, 2, 382, 539] +[:mouse_move, 881, 332, 2, 383, 540] +[:mouse_move, 883, 332, 2, 384, 541] +[:mouse_move, 887, 331, 2, 385, 542] +[:mouse_move, 890, 331, 2, 386, 543] +[:mouse_move, 894, 330, 2, 387, 544] +[:mouse_move, 895, 330, 2, 388, 545] +[:mouse_move, 898, 330, 2, 389, 546] +[:mouse_move, 899, 330, 2, 390, 547] +[:mouse_move, 900, 330, 2, 391, 548] +[:mouse_move, 901, 330, 2, 392, 549] +[:mouse_button_pressed, 1, 0, 1, 393, 552] +[:mouse_button_up, 1, 0, 1, 394, 560] +[:mouse_move, 895, 336, 2, 395, 598] +[:mouse_move, 888, 341, 2, 396, 599] +[:mouse_move, 856, 356, 2, 397, 600] +[:mouse_move, 834, 364, 2, 398, 601] +[:mouse_move, 779, 375, 2, 399, 602] +[:mouse_move, 747, 379, 2, 400, 603] +[:mouse_move, 701, 382, 2, 401, 604] +[:mouse_move, 675, 382, 2, 402, 605] +[:mouse_move, 650, 382, 2, 403, 606] +[:mouse_move, 637, 381, 2, 404, 607] +[:mouse_move, 626, 378, 2, 405, 608] +[:mouse_move, 622, 376, 2, 406, 609] +[:mouse_move, 616, 372, 2, 407, 610] +[:mouse_move, 615, 371, 2, 408, 611] +[:mouse_move, 614, 369, 2, 409, 612] +[:mouse_move, 614, 368, 2, 410, 614] +[:mouse_move, 614, 367, 2, 411, 615] +[:mouse_move, 614, 366, 2, 412, 616] +[:mouse_move, 615, 365, 2, 413, 618] +[:mouse_move, 616, 364, 2, 414, 620] +[:mouse_move, 617, 364, 2, 415, 623] +[:mouse_move, 617, 363, 2, 416, 624] +[:mouse_move, 618, 363, 2, 417, 626] +[:mouse_move, 623, 363, 2, 418, 627] +[:mouse_move, 626, 364, 2, 419, 628] +[:mouse_move, 635, 367, 2, 420, 629] +[:mouse_move, 641, 368, 2, 421, 630] +[:mouse_move, 654, 370, 2, 422, 631] +[:mouse_move, 661, 370, 2, 423, 632] +[:mouse_move, 678, 369, 2, 424, 633] +[:mouse_move, 681, 367, 2, 425, 634] +[:mouse_move, 694, 361, 2, 426, 635] +[:mouse_move, 699, 356, 2, 427, 636] +[:mouse_move, 707, 348, 2, 428, 637] +[:mouse_move, 709, 346, 2, 429, 638] +[:mouse_move, 714, 338, 2, 430, 639] +[:mouse_move, 715, 335, 2, 431, 640] +[:mouse_move, 715, 327, 2, 432, 641] +[:mouse_move, 715, 323, 2, 433, 642] +[:mouse_move, 709, 315, 2, 434, 643] +[:mouse_move, 706, 311, 2, 435, 644] +[:mouse_move, 697, 304, 2, 436, 645] +[:mouse_move, 688, 299, 2, 437, 646] +[:mouse_move, 672, 296, 2, 438, 647] +[:mouse_move, 667, 296, 2, 439, 648] +[:mouse_move, 654, 295, 2, 440, 649] +[:mouse_move, 647, 295, 2, 441, 650] +[:mouse_move, 642, 295, 2, 442, 651] +[:mouse_move, 631, 296, 2, 443, 652] +[:mouse_move, 625, 298, 2, 444, 653] +[:mouse_move, 619, 301, 2, 445, 654] +[:mouse_move, 616, 303, 2, 446, 655] +[:mouse_move, 611, 306, 2, 447, 656] +[:mouse_move, 608, 309, 2, 448, 657] +[:mouse_move, 607, 314, 2, 449, 658] +[:mouse_move, 606, 317, 2, 450, 659] +[:mouse_move, 606, 324, 2, 451, 660] +[:mouse_move, 606, 329, 2, 452, 661] +[:mouse_move, 611, 338, 2, 453, 662] +[:mouse_move, 612, 340, 2, 454, 663] +[:mouse_move, 615, 345, 2, 455, 664] +[:mouse_move, 617, 347, 2, 456, 665] +[:mouse_move, 622, 351, 2, 457, 666] +[:mouse_move, 624, 352, 2, 458, 667] +[:mouse_move, 632, 355, 2, 459, 668] +[:mouse_move, 636, 356, 2, 460, 669] +[:mouse_move, 645, 358, 2, 461, 670] +[:mouse_move, 650, 359, 2, 462, 671] +[:mouse_move, 667, 360, 2, 463, 672] +[:mouse_move, 675, 360, 2, 464, 673] +[:mouse_move, 686, 360, 2, 465, 674] +[:mouse_move, 693, 360, 2, 466, 675] +[:mouse_move, 699, 360, 2, 467, 676] +[:mouse_move, 707, 356, 2, 468, 677] +[:mouse_move, 710, 354, 2, 469, 678] +[:mouse_move, 716, 348, 2, 470, 679] +[:mouse_move, 717, 343, 2, 471, 680] +[:mouse_move, 718, 334, 2, 472, 681] +[:mouse_move, 718, 329, 2, 473, 682] +[:mouse_move, 717, 319, 2, 474, 683] +[:mouse_move, 714, 314, 2, 475, 684] +[:mouse_move, 705, 305, 2, 476, 685] +[:mouse_move, 699, 301, 2, 477, 686] +[:mouse_move, 688, 295, 2, 478, 687] +[:mouse_move, 682, 293, 2, 479, 688] +[:mouse_move, 674, 290, 2, 480, 689] +[:mouse_move, 666, 288, 2, 481, 690] +[:mouse_move, 657, 287, 2, 482, 691] +[:mouse_move, 651, 287, 2, 483, 692] +[:mouse_move, 642, 288, 2, 484, 693] +[:mouse_move, 638, 290, 2, 485, 694] +[:mouse_move, 628, 295, 2, 486, 695] +[:mouse_move, 624, 298, 2, 487, 696] +[:mouse_move, 617, 305, 2, 488, 697] +[:mouse_move, 614, 309, 2, 489, 698] +[:mouse_move, 611, 317, 2, 490, 699] +[:mouse_move, 610, 322, 2, 491, 700] +[:mouse_move, 610, 329, 2, 492, 701] +[:mouse_move, 610, 333, 2, 493, 702] +[:mouse_move, 615, 341, 2, 494, 703] +[:mouse_move, 618, 345, 2, 495, 704] +[:mouse_move, 622, 348, 2, 496, 705] +[:mouse_move, 631, 355, 2, 497, 706] +[:mouse_move, 636, 359, 2, 498, 707] +[:mouse_move, 646, 365, 2, 499, 708] +[:mouse_move, 650, 368, 2, 500, 709] +[:mouse_move, 659, 371, 2, 501, 710] +[:mouse_move, 663, 372, 2, 502, 711] +[:mouse_move, 668, 372, 2, 503, 712] +[:mouse_move, 671, 372, 2, 504, 713] +[:mouse_move, 676, 372, 2, 505, 714] +[:mouse_move, 678, 371, 2, 506, 715] +[:mouse_move, 681, 369, 2, 507, 716] +[:mouse_move, 682, 369, 2, 508, 717] +[:mouse_move, 683, 368, 2, 509, 718] +[:key_down_raw, 1073742051, 1024, 2, 510, 794] +[:key_down_raw, 113, 1024, 2, 511, 795] diff --git a/samples/02_input_basics/04_mouse_rect_to_rect/app/main.rb b/samples/02_input_basics/04_mouse_rect_to_rect/app/main.rb new file mode 100644 index 0000000..1a00a41 --- /dev/null +++ b/samples/02_input_basics/04_mouse_rect_to_rect/app/main.rb @@ -0,0 +1,97 @@ +=begin + +APIs that haven't been encountered in a previous sample apps: + +- args.outputs.borders: An array. Values in this array will be rendered as + unfilled rectangles on the screen. +- ARRAY#intersect_rect?: An array with at least four values is + considered a rect. The intersect_rect? function returns true + or false depending on if the two rectangles intersect. + + ``` + # Rect One: x: 100, y: 100, w: 100, h: 100 + # Rect Two: x: 0, y: 0, w: 500, h: 500 + # Result: true + + [100, 100, 100, 100].intersect_rect? [0, 0, 500, 500] + ``` + + ``` + # Rect One: x: 100, y: 100, w: 10, h: 10 + # Rect Two: x: 500, y: 500, w: 10, h: 10 + # Result: false + + [100, 100, 10, 10].intersect_rect? [500, 500, 10, 10] + ``` + +=end + +# Similarly, whether rects intersect can be found through +# rect1.intersect_rect? rect2 + +def tick args + tick_instructions args, "Sample app shows how to determine if two rectangles intersect." + x = 460 + + args.outputs.labels << small_label(args, x, 3, "Click anywhere on the screen") + # red_box = [460, 250, 355, 90, 170, 0, 0] + # args.outputs.borders << red_box + + # args.state.box_collision_one and args.state.box_collision_two + # Are given values of a solid when they should be rendered + # They are stored in game so that they do not get reset every tick + if args.inputs.mouse.click + if !args.state.box_collision_one + args.state.box_collision_one = [args.inputs.mouse.click.point.x - 25, args.inputs.mouse.click.point.y - 25, 125, 125, 180, 0, 0, 180] + elsif !args.state.box_collision_two + args.state.box_collision_two = [args.inputs.mouse.click.point.x - 25, args.inputs.mouse.click.point.y - 25, 125, 125, 0, 0, 180, 180] + else + args.state.box_collision_one = nil + args.state.box_collision_two = nil + end + end + + if args.state.box_collision_one + args.outputs.solids << args.state.box_collision_one + end + + if args.state.box_collision_two + args.outputs.solids << args.state.box_collision_two + end + + if args.state.box_collision_one && args.state.box_collision_two + if args.state.box_collision_one.intersect_rect? args.state.box_collision_two + args.outputs.labels << small_label(args, x, 4, 'The boxes intersect.') + else + args.outputs.labels << small_label(args, x, 4, 'The boxes do not intersect.') + end + else + args.outputs.labels << small_label(args, x, 4, '--') + end +end + +def small_label args, x, row, message + [x, row_to_px(args, row), message, small_font] +end + +def small_font + [-2, 0, 0, 0, 0, 255] +end + +def row_to_px args, row_number + args.grid.top.shift_down(5).shift_down(20 * row_number) +end + +def tick_instructions args, text, y = 715 + return if args.state.key_event_occurred + if args.inputs.mouse.click || + args.inputs.keyboard.directional_vector || + args.inputs.keyboard.key_down.enter || + args.inputs.keyboard.key_down.escape + args.state.key_event_occurred = true + end + + args.outputs.debug << [0, y - 50, 1280, 60].solid + args.outputs.debug << [640, y, text, 1, 1, 255, 255, 255].label + args.outputs.debug << [640, y - 25, "(click to dismiss instructions)" , -2, 1, 255, 255, 255].label +end diff --git a/samples/02_input_basics/04_mouse_rect_to_rect/license-for-sample.txt b/samples/02_input_basics/04_mouse_rect_to_rect/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/02_input_basics/04_mouse_rect_to_rect/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/02_input_basics/04_mouse_rect_to_rect/replay.txt b/samples/02_input_basics/04_mouse_rect_to_rect/replay.txt new file mode 100644 index 0000000..7ddec95 --- /dev/null +++ b/samples/02_input_basics/04_mouse_rect_to_rect/replay.txt @@ -0,0 +1,376 @@ +replay_version 2.0 +stopped_at 909 +seed 100 +recorded_at Sun Sep 29 21:35:19 2019 +[:mouse_move, 670, 363, 2, 1, 87] +[:mouse_move, 642, 353, 2, 2, 88] +[:mouse_move, 631, 351, 2, 3, 89] +[:mouse_move, 578, 338, 2, 4, 90] +[:mouse_move, 555, 332, 2, 5, 91] +[:mouse_move, 521, 326, 2, 6, 92] +[:mouse_move, 503, 323, 2, 7, 93] +[:mouse_move, 495, 322, 2, 8, 94] +[:mouse_move, 479, 319, 2, 9, 95] +[:mouse_move, 472, 318, 2, 10, 96] +[:mouse_move, 463, 317, 2, 11, 97] +[:mouse_move, 461, 317, 2, 12, 98] +[:mouse_move, 457, 316, 2, 13, 99] +[:mouse_move, 455, 315, 2, 14, 101] +[:mouse_move, 454, 315, 2, 15, 102] +[:mouse_move, 454, 314, 2, 16, 105] +[:mouse_button_pressed, 1, 0, 1, 17, 110] +[:mouse_button_up, 1, 0, 1, 18, 118] +[:mouse_move, 455, 314, 2, 19, 201] +[:mouse_move, 472, 314, 2, 20, 202] +[:mouse_move, 490, 314, 2, 21, 203] +[:mouse_move, 528, 313, 2, 22, 204] +[:mouse_move, 585, 307, 2, 23, 205] +[:mouse_move, 625, 301, 2, 24, 206] +[:mouse_move, 697, 288, 2, 25, 207] +[:mouse_move, 729, 283, 2, 26, 208] +[:mouse_move, 763, 279, 2, 27, 209] +[:mouse_move, 784, 278, 2, 28, 210] +[:mouse_move, 788, 278, 2, 29, 211] +[:mouse_move, 797, 278, 2, 30, 212] +[:mouse_move, 802, 278, 2, 31, 213] +[:mouse_move, 809, 278, 2, 32, 214] +[:mouse_move, 810, 278, 2, 33, 215] +[:mouse_move, 811, 279, 2, 34, 216] +[:mouse_move, 812, 279, 2, 35, 218] +[:mouse_move, 810, 279, 2, 36, 222] +[:mouse_move, 801, 276, 2, 37, 223] +[:mouse_move, 793, 273, 2, 38, 224] +[:mouse_move, 784, 271, 2, 39, 225] +[:mouse_move, 757, 268, 2, 40, 226] +[:mouse_move, 738, 266, 2, 41, 227] +[:mouse_move, 734, 266, 2, 42, 228] +[:mouse_move, 721, 266, 2, 43, 229] +[:mouse_move, 717, 266, 2, 44, 230] +[:mouse_move, 715, 266, 2, 45, 231] +[:mouse_move, 712, 266, 2, 46, 232] +[:mouse_move, 711, 266, 2, 47, 234] +[:mouse_move, 711, 267, 2, 48, 238] +[:mouse_move, 710, 267, 2, 49, 242] +[:mouse_move, 709, 267, 2, 50, 246] +[:mouse_button_pressed, 1, 0, 1, 51, 247] +[:mouse_button_up, 1, 0, 1, 52, 254] +[:mouse_move, 708, 264, 2, 53, 296] +[:mouse_move, 706, 261, 2, 54, 297] +[:mouse_move, 696, 249, 2, 55, 298] +[:mouse_move, 688, 242, 2, 56, 299] +[:mouse_move, 671, 228, 2, 57, 300] +[:mouse_move, 632, 204, 2, 58, 301] +[:mouse_move, 582, 176, 2, 59, 302] +[:mouse_move, 571, 169, 2, 60, 303] +[:mouse_move, 543, 153, 2, 61, 304] +[:mouse_move, 521, 140, 2, 62, 306] +[:mouse_move, 516, 137, 2, 63, 307] +[:mouse_move, 512, 135, 2, 64, 308] +[:mouse_move, 510, 134, 2, 65, 309] +[:mouse_move, 508, 133, 2, 66, 310] +[:mouse_move, 504, 132, 2, 67, 311] +[:mouse_move, 500, 132, 2, 68, 312] +[:mouse_move, 497, 132, 2, 69, 313] +[:mouse_move, 491, 132, 2, 70, 315] +[:mouse_move, 488, 132, 2, 71, 316] +[:mouse_move, 487, 132, 2, 72, 317] +[:mouse_move, 484, 131, 2, 73, 318] +[:mouse_move, 482, 130, 2, 74, 319] +[:mouse_move, 481, 129, 2, 75, 320] +[:mouse_move, 477, 127, 2, 76, 321] +[:mouse_move, 475, 125, 2, 77, 322] +[:mouse_move, 472, 123, 2, 78, 323] +[:mouse_move, 470, 122, 2, 79, 324] +[:mouse_move, 468, 120, 2, 80, 325] +[:mouse_move, 466, 120, 2, 81, 326] +[:mouse_move, 463, 117, 2, 82, 327] +[:mouse_move, 461, 116, 2, 83, 328] +[:mouse_move, 459, 115, 2, 84, 329] +[:mouse_move, 458, 114, 2, 85, 330] +[:mouse_move, 457, 112, 2, 86, 331] +[:mouse_move, 456, 112, 2, 87, 332] +[:mouse_move, 456, 111, 2, 88, 335] +[:mouse_move, 457, 111, 2, 89, 340] +[:mouse_move, 458, 111, 2, 90, 342] +[:mouse_move, 459, 111, 2, 91, 343] +[:mouse_move, 461, 111, 2, 92, 346] +[:mouse_move, 463, 111, 2, 93, 347] +[:mouse_move, 468, 110, 2, 94, 348] +[:mouse_move, 471, 109, 2, 95, 349] +[:mouse_move, 475, 109, 2, 96, 350] +[:mouse_move, 483, 107, 2, 97, 351] +[:mouse_move, 491, 106, 2, 98, 352] +[:mouse_move, 496, 106, 2, 99, 353] +[:mouse_move, 505, 105, 2, 100, 354] +[:mouse_move, 510, 104, 2, 101, 355] +[:mouse_move, 520, 104, 2, 102, 356] +[:mouse_move, 525, 104, 2, 103, 357] +[:mouse_move, 529, 104, 2, 104, 358] +[:mouse_move, 537, 104, 2, 105, 359] +[:mouse_move, 540, 104, 2, 106, 360] +[:mouse_move, 548, 104, 2, 107, 361] +[:mouse_move, 553, 104, 2, 108, 362] +[:mouse_move, 560, 106, 2, 109, 363] +[:mouse_move, 562, 106, 2, 110, 364] +[:mouse_move, 571, 108, 2, 111, 365] +[:mouse_move, 576, 110, 2, 112, 366] +[:mouse_move, 578, 110, 2, 113, 367] +[:mouse_move, 584, 112, 2, 114, 368] +[:mouse_move, 585, 112, 2, 115, 369] +[:mouse_move, 588, 112, 2, 116, 370] +[:mouse_move, 592, 113, 2, 117, 371] +[:mouse_move, 596, 113, 2, 118, 372] +[:mouse_move, 597, 113, 2, 119, 373] +[:mouse_move, 599, 113, 2, 120, 374] +[:mouse_move, 604, 113, 2, 121, 375] +[:mouse_move, 606, 113, 2, 122, 376] +[:mouse_move, 610, 113, 2, 123, 377] +[:mouse_move, 612, 113, 2, 124, 378] +[:mouse_move, 617, 113, 2, 125, 379] +[:mouse_move, 618, 113, 2, 126, 380] +[:mouse_move, 620, 113, 2, 127, 381] +[:mouse_move, 625, 113, 2, 128, 382] +[:mouse_move, 629, 113, 2, 129, 383] +[:mouse_move, 632, 113, 2, 130, 384] +[:mouse_move, 633, 113, 2, 131, 385] +[:mouse_move, 639, 112, 2, 132, 386] +[:mouse_move, 644, 111, 2, 133, 387] +[:mouse_move, 647, 111, 2, 134, 388] +[:mouse_move, 648, 111, 2, 135, 389] +[:mouse_move, 653, 110, 2, 136, 390] +[:mouse_move, 659, 110, 2, 137, 391] +[:mouse_move, 663, 109, 2, 138, 392] +[:mouse_move, 667, 109, 2, 139, 393] +[:mouse_move, 669, 109, 2, 140, 394] +[:mouse_move, 672, 109, 2, 141, 395] +[:mouse_move, 673, 109, 2, 142, 396] +[:mouse_move, 674, 109, 2, 143, 397] +[:mouse_move, 675, 109, 2, 144, 398] +[:mouse_move, 674, 117, 2, 145, 426] +[:mouse_move, 663, 166, 2, 146, 427] +[:mouse_move, 654, 205, 2, 147, 428] +[:mouse_move, 636, 260, 2, 148, 429] +[:mouse_move, 617, 308, 2, 149, 430] +[:mouse_move, 606, 332, 2, 150, 431] +[:mouse_move, 595, 354, 2, 151, 432] +[:mouse_move, 591, 361, 2, 152, 433] +[:mouse_move, 579, 388, 2, 153, 434] +[:mouse_move, 571, 406, 2, 154, 435] +[:mouse_move, 570, 409, 2, 155, 436] +[:mouse_move, 566, 418, 2, 156, 437] +[:mouse_move, 564, 421, 2, 157, 438] +[:mouse_move, 563, 423, 2, 158, 439] +[:mouse_move, 560, 427, 2, 159, 440] +[:mouse_move, 558, 428, 2, 160, 441] +[:mouse_move, 553, 431, 2, 161, 442] +[:mouse_move, 545, 433, 2, 162, 443] +[:mouse_move, 542, 434, 2, 163, 444] +[:mouse_move, 540, 435, 2, 164, 445] +[:mouse_move, 535, 436, 2, 165, 446] +[:mouse_move, 533, 436, 2, 166, 447] +[:mouse_move, 530, 437, 2, 167, 448] +[:mouse_move, 529, 437, 2, 168, 449] +[:mouse_button_pressed, 1, 0, 1, 169, 456] +[:mouse_button_up, 1, 0, 1, 170, 466] +[:mouse_move, 529, 435, 2, 171, 509] +[:mouse_move, 529, 433, 2, 172, 510] +[:mouse_move, 528, 426, 2, 173, 511] +[:mouse_move, 527, 418, 2, 174, 512] +[:mouse_move, 526, 410, 2, 175, 513] +[:mouse_move, 525, 400, 2, 176, 514] +[:mouse_move, 523, 388, 2, 177, 515] +[:mouse_move, 521, 369, 2, 178, 516] +[:mouse_move, 521, 356, 2, 179, 517] +[:mouse_move, 520, 347, 2, 180, 518] +[:mouse_move, 520, 344, 2, 181, 519] +[:mouse_move, 519, 341, 2, 182, 520] +[:mouse_move, 519, 340, 2, 183, 522] +[:mouse_move, 519, 341, 2, 184, 524] +[:mouse_move, 519, 345, 2, 185, 525] +[:mouse_move, 519, 348, 2, 186, 526] +[:mouse_move, 519, 352, 2, 187, 527] +[:mouse_move, 519, 356, 2, 188, 528] +[:mouse_move, 519, 364, 2, 189, 529] +[:mouse_move, 519, 371, 2, 190, 530] +[:mouse_move, 520, 373, 2, 191, 531] +[:mouse_move, 522, 377, 2, 192, 532] +[:mouse_move, 523, 379, 2, 193, 533] +[:mouse_move, 524, 380, 2, 194, 534] +[:mouse_move, 525, 382, 2, 195, 535] +[:mouse_move, 526, 382, 2, 196, 536] +[:mouse_move, 527, 383, 2, 197, 537] +[:mouse_button_pressed, 1, 0, 1, 198, 540] +[:mouse_button_up, 1, 0, 1, 199, 549] +[:mouse_move, 530, 383, 2, 200, 563] +[:mouse_move, 533, 383, 2, 201, 564] +[:mouse_move, 537, 381, 2, 202, 565] +[:mouse_move, 542, 379, 2, 203, 566] +[:mouse_move, 543, 377, 2, 204, 567] +[:mouse_move, 548, 371, 2, 205, 568] +[:mouse_move, 551, 364, 2, 206, 569] +[:mouse_move, 553, 358, 2, 207, 570] +[:mouse_move, 557, 345, 2, 208, 571] +[:mouse_move, 558, 342, 2, 209, 572] +[:mouse_move, 559, 338, 2, 210, 573] +[:mouse_move, 562, 331, 2, 211, 574] +[:mouse_move, 562, 330, 2, 212, 575] +[:mouse_move, 562, 329, 2, 213, 576] +[:mouse_move, 563, 329, 2, 214, 578] +[:mouse_move, 563, 332, 2, 215, 579] +[:mouse_move, 564, 334, 2, 216, 580] +[:mouse_move, 564, 337, 2, 217, 581] +[:mouse_move, 565, 339, 2, 218, 582] +[:mouse_move, 565, 341, 2, 219, 583] +[:mouse_move, 565, 342, 2, 220, 584] +[:mouse_move, 566, 343, 2, 221, 585] +[:mouse_move, 567, 343, 2, 222, 593] +[:mouse_move, 568, 343, 2, 223, 594] +[:mouse_move, 570, 343, 2, 224, 595] +[:mouse_move, 571, 343, 2, 225, 596] +[:mouse_move, 574, 344, 2, 226, 597] +[:mouse_move, 575, 344, 2, 227, 598] +[:mouse_move, 577, 344, 2, 228, 599] +[:mouse_move, 583, 344, 2, 229, 600] +[:mouse_move, 588, 345, 2, 230, 601] +[:mouse_move, 603, 346, 2, 231, 602] +[:mouse_move, 614, 346, 2, 232, 603] +[:mouse_move, 622, 346, 2, 233, 604] +[:mouse_move, 632, 347, 2, 234, 605] +[:mouse_move, 636, 347, 2, 235, 606] +[:mouse_move, 639, 347, 2, 236, 607] +[:mouse_move, 643, 347, 2, 237, 608] +[:mouse_move, 642, 347, 2, 238, 611] +[:mouse_move, 641, 347, 2, 239, 612] +[:mouse_move, 640, 347, 2, 240, 613] +[:mouse_move, 639, 347, 2, 241, 614] +[:mouse_move, 638, 347, 2, 242, 615] +[:mouse_move, 636, 347, 2, 243, 617] +[:mouse_move, 635, 347, 2, 244, 618] +[:mouse_move, 634, 347, 2, 245, 619] +[:mouse_move, 633, 347, 2, 246, 620] +[:mouse_move, 632, 347, 2, 247, 621] +[:mouse_move, 631, 347, 2, 248, 623] +[:mouse_move, 630, 347, 2, 249, 627] +[:mouse_move, 630, 346, 2, 250, 629] +[:mouse_move, 631, 346, 2, 251, 635] +[:mouse_move, 631, 345, 2, 252, 636] +[:mouse_button_pressed, 1, 0, 1, 253, 642] +[:mouse_button_up, 1, 0, 1, 254, 651] +[:mouse_move, 630, 340, 2, 255, 701] +[:mouse_move, 628, 330, 2, 256, 702] +[:mouse_move, 619, 293, 2, 257, 703] +[:mouse_move, 615, 278, 2, 258, 704] +[:mouse_move, 606, 251, 2, 259, 705] +[:mouse_move, 601, 236, 2, 260, 706] +[:mouse_move, 591, 213, 2, 261, 707] +[:mouse_move, 574, 195, 2, 262, 708] +[:mouse_move, 552, 182, 2, 263, 709] +[:mouse_move, 539, 176, 2, 264, 710] +[:mouse_move, 521, 168, 2, 265, 711] +[:mouse_move, 510, 162, 2, 266, 712] +[:mouse_move, 500, 157, 2, 267, 713] +[:mouse_move, 473, 144, 2, 268, 714] +[:mouse_move, 452, 130, 2, 269, 715] +[:mouse_move, 443, 121, 2, 270, 716] +[:mouse_move, 439, 118, 2, 271, 717] +[:mouse_move, 427, 104, 2, 272, 718] +[:mouse_move, 425, 102, 2, 273, 719] +[:mouse_move, 420, 95, 2, 274, 720] +[:mouse_move, 419, 93, 2, 275, 721] +[:mouse_move, 418, 92, 2, 276, 722] +[:mouse_move, 417, 90, 2, 277, 723] +[:mouse_move, 417, 89, 2, 278, 724] +[:mouse_move, 417, 88, 2, 279, 726] +[:mouse_move, 418, 88, 2, 280, 728] +[:mouse_move, 419, 88, 2, 281, 729] +[:mouse_move, 423, 89, 2, 282, 730] +[:mouse_move, 427, 91, 2, 283, 731] +[:mouse_move, 436, 95, 2, 284, 732] +[:mouse_move, 440, 98, 2, 285, 733] +[:mouse_move, 445, 100, 2, 286, 734] +[:mouse_move, 453, 106, 2, 287, 735] +[:mouse_move, 458, 109, 2, 288, 736] +[:mouse_move, 466, 116, 2, 289, 737] +[:mouse_move, 469, 119, 2, 290, 738] +[:mouse_move, 478, 125, 2, 291, 739] +[:mouse_move, 486, 131, 2, 292, 740] +[:mouse_move, 497, 136, 2, 293, 741] +[:mouse_move, 504, 139, 2, 294, 742] +[:mouse_move, 511, 141, 2, 295, 743] +[:mouse_move, 527, 143, 2, 296, 744] +[:mouse_move, 542, 143, 2, 297, 745] +[:mouse_move, 581, 137, 2, 298, 746] +[:mouse_move, 589, 135, 2, 299, 747] +[:mouse_move, 616, 126, 2, 300, 748] +[:mouse_move, 623, 124, 2, 301, 749] +[:mouse_move, 645, 114, 2, 302, 750] +[:mouse_move, 654, 109, 2, 303, 752] +[:mouse_move, 661, 104, 2, 304, 753] +[:mouse_move, 662, 102, 2, 305, 754] +[:mouse_move, 663, 101, 2, 306, 755] +[:mouse_move, 664, 97, 2, 307, 756] +[:mouse_move, 661, 91, 2, 308, 757] +[:mouse_move, 657, 88, 2, 309, 758] +[:mouse_move, 652, 83, 2, 310, 759] +[:mouse_move, 625, 68, 2, 311, 760] +[:mouse_move, 586, 53, 2, 312, 761] +[:mouse_move, 576, 50, 2, 313, 762] +[:mouse_move, 555, 45, 2, 314, 763] +[:mouse_move, 531, 39, 2, 315, 764] +[:mouse_move, 494, 33, 2, 316, 765] +[:mouse_move, 482, 32, 2, 317, 766] +[:mouse_move, 470, 32, 2, 318, 767] +[:mouse_move, 448, 32, 2, 319, 768] +[:mouse_move, 435, 33, 2, 320, 769] +[:mouse_move, 427, 36, 2, 321, 770] +[:mouse_move, 420, 39, 2, 322, 771] +[:mouse_move, 409, 46, 2, 323, 772] +[:mouse_move, 398, 63, 2, 324, 774] +[:mouse_move, 395, 69, 2, 325, 775] +[:mouse_move, 394, 77, 2, 326, 776] +[:mouse_move, 394, 81, 2, 327, 777] +[:mouse_move, 394, 90, 2, 328, 778] +[:mouse_move, 396, 96, 2, 329, 780] +[:mouse_move, 406, 107, 2, 330, 781] +[:mouse_move, 417, 116, 2, 331, 782] +[:mouse_move, 428, 125, 2, 332, 783] +[:mouse_move, 449, 135, 2, 333, 784] +[:mouse_move, 461, 141, 2, 334, 785] +[:mouse_move, 489, 151, 2, 335, 786] +[:mouse_move, 503, 154, 2, 336, 787] +[:mouse_move, 521, 158, 2, 337, 788] +[:mouse_move, 541, 161, 2, 338, 789] +[:mouse_move, 552, 161, 2, 339, 790] +[:mouse_move, 569, 161, 2, 340, 791] +[:mouse_move, 596, 154, 2, 341, 793] +[:mouse_move, 612, 148, 2, 342, 794] +[:mouse_move, 619, 144, 2, 343, 795] +[:mouse_move, 628, 139, 2, 344, 796] +[:mouse_move, 631, 137, 2, 345, 797] +[:mouse_move, 633, 134, 2, 346, 798] +[:mouse_move, 637, 129, 2, 347, 799] +[:mouse_move, 637, 125, 2, 348, 800] +[:mouse_move, 631, 118, 2, 349, 801] +[:mouse_move, 620, 109, 2, 350, 802] +[:mouse_move, 611, 102, 2, 351, 803] +[:mouse_move, 592, 90, 2, 352, 804] +[:mouse_move, 581, 83, 2, 353, 805] +[:mouse_move, 567, 77, 2, 354, 806] +[:mouse_move, 535, 65, 2, 355, 807] +[:mouse_move, 519, 61, 2, 356, 808] +[:mouse_move, 498, 59, 2, 357, 809] +[:mouse_move, 476, 57, 2, 358, 810] +[:mouse_move, 452, 58, 2, 359, 811] +[:mouse_move, 442, 62, 2, 360, 812] +[:mouse_move, 424, 74, 2, 361, 813] +[:mouse_move, 416, 83, 2, 362, 814] +[:mouse_move, 402, 111, 2, 363, 815] +[:mouse_move, 398, 127, 2, 364, 816] +[:mouse_move, 397, 135, 2, 365, 817] +[:mouse_move, 395, 151, 2, 366, 818] +[:mouse_move, 395, 158, 2, 367, 819] +[:mouse_move, 396, 176, 2, 368, 820] +[:mouse_move, 404, 181, 2, 369, 821] +[:mouse_move, 422, 186, 2, 370, 822] +[:key_down_raw, 1073742051, 1024, 2, 371, 904] +[:key_down_raw, 113, 1024, 2, 372, 908] diff --git a/samples/02_input_basics/05_controller/app/main.rb b/samples/02_input_basics/05_controller/app/main.rb new file mode 100644 index 0000000..99cca15 --- /dev/null +++ b/samples/02_input_basics/05_controller/app/main.rb @@ -0,0 +1,126 @@ +=begin + + APIs listing that haven't been encountered in previous sample apps: + + - args.inputs.controller_one.key_held.KEY: Will check to see if a specific key + is being held down on the controller. + If there is more than one controller being used, they can be differentiated by + using names like controller_one and controller_two. + + For a full listing of buttons, take a look at mygame/documentation/08-controllers.md. + + Reminder: + + - args.state.PROPERTY: The state property on args is a dynamic + structure. You can define ANY property here with ANY type of + arbitrary nesting. Properties defined on args.state will be retained + across frames. If you attempt to access a property that doesn't exist + on args.state, it will simply return nil (no exception will be thrown). + + In this sample app, args.state.BUTTONS is an array that stores the buttons of the controller. + The parameters of a button are: + 1. the position (x, y) + 2. the input key held on the controller + 3. the text or name of the button + +=end + +# This sample app provides a visual demonstration of a standard controller, including +# the placement and function of all buttons. + +class ControllerDemo + attr_accessor :inputs, :state, :outputs + + # Calls the methods necessary for the app to run successfully. + def tick + process_inputs + render + end + + # Starts with an empty collection of buttons. + # Adds buttons that are on the controller to the collection. + def process_inputs + state.buttons = [] + + state.buttons << [100, 500, inputs.controller_one.key_held.l1, "L1"] + state.buttons << [100, 600, inputs.controller_one.key_held.l2, "L2"] + + state.buttons << [1100, 500, inputs.controller_one.key_held.r1, "R1"] + state.buttons << [1100, 600, inputs.controller_one.key_held.r2, "R2"] + + state.buttons << [540, 450, inputs.controller_one.key_held.select, "Select"] + state.buttons << [660, 450, inputs.controller_one.key_held.start, "Start"] + + state.buttons << [200, 300, inputs.controller_one.key_held.left, "Left"] + state.buttons << [300, 400, inputs.controller_one.key_held.up, "Up"] + state.buttons << [400, 300, inputs.controller_one.key_held.right, "Right"] + state.buttons << [300, 200, inputs.controller_one.key_held.down, "Down"] + + state.buttons << [800, 300, inputs.controller_one.key_held.x, "X"] + state.buttons << [900, 400, inputs.controller_one.key_held.y, "Y"] + state.buttons << [1000, 300, inputs.controller_one.key_held.a, "A"] + state.buttons << [900, 200, inputs.controller_one.key_held.b, "B"] + + state.buttons << [450 + inputs.controller_one.left_analog_x_perc * 100, + 100 + inputs.controller_one.left_analog_y_perc * 100, + inputs.controller_one.key_held.l3, + "L3"] + + state.buttons << [750 + inputs.controller_one.right_analog_x_perc * 100, + 100 + inputs.controller_one.right_analog_y_perc * 100, + inputs.controller_one.key_held.r3, + "R3"] + end + + # Gives each button a square shape. + # If the button is being pressed or held (which means it is considered active), + # the square is filled in. Otherwise, the button simply has a border. + def render + state.buttons.each do |x, y, active, text| + rect = [x, y, 75, 75] + + if active # if button is pressed + outputs.solids << rect # rect is output as solid (filled in) + else + outputs.borders << rect # otherwise, output as border + end + + # Outputs the text of each button using labels. + outputs.labels << [x, y + 95, text] # add 95 to place label above button + end + + outputs.labels << [10, 60, "Left Analog x: #{inputs.controller_one.left_analog_x_raw} (#{inputs.controller_one.left_analog_x_perc * 100}%)"] + outputs.labels << [10, 30, "Left Analog y: #{inputs.controller_one.left_analog_y_raw} (#{inputs.controller_one.left_analog_y_perc * 100}%)"] + outputs.labels << [900, 60, "Right Analog x: #{inputs.controller_one.right_analog_x_raw} (#{inputs.controller_one.right_analog_x_perc * 100}%)"] + outputs.labels << [900, 30, "Right Analog y: #{inputs.controller_one.right_analog_y_raw} (#{inputs.controller_one.right_analog_y_perc * 100}%)"] + end +end + +$controller_demo = ControllerDemo.new + +def tick args + tick_instructions args, "Sample app shows how controller input is handled. You'll need to connect a USB controller." + $controller_demo.inputs = args.inputs + $controller_demo.state = args.state + $controller_demo.outputs = args.outputs + $controller_demo.tick +end + +# Resets the app. +def r + $gtk.reset +end + +def tick_instructions args, text, y = 715 + return if args.state.key_event_occurred + if args.inputs.mouse.click || + args.inputs.keyboard.directional_vector || + args.inputs.keyboard.key_down.enter || + args.inputs.keyboard.key_down.escape + args.state.key_event_occurred = true + end + + args.outputs.debug << [0, y - 50, 1280, 60].solid + args.outputs.debug << [640, y, text, 1, 1, 255, 255, 255].label + args.outputs.debug << [640, y - 25, "(click to dismiss instructions)" , -2, 1, 255, 255, 255].label +end diff --git a/samples/02_input_basics/05_controller/license-for-sample.txt b/samples/02_input_basics/05_controller/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/02_input_basics/05_controller/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/02_input_basics/05_controller/replay.txt b/samples/02_input_basics/05_controller/replay.txt new file mode 100644 index 0000000..859e01a --- /dev/null +++ b/samples/02_input_basics/05_controller/replay.txt @@ -0,0 +1,1062 @@ +replay_version 2.0 +stopped_at 1530 +seed 100 +recorded_at Sun Sep 29 21:36:37 2019 +[:mouse_move, 41, 311, 2, 1, 140] +[:mouse_move, 173, 294, 2, 2, 141] +[:mouse_move, 233, 281, 2, 3, 142] +[:mouse_move, 344, 249, 2, 4, 143] +[:mouse_move, 365, 240, 2, 5, 144] +[:mouse_move, 422, 219, 2, 6, 145] +[:mouse_move, 452, 206, 2, 7, 146] +[:mouse_move, 468, 198, 2, 8, 147] +[:mouse_move, 481, 192, 2, 9, 148] +[:mouse_move, 507, 182, 2, 10, 149] +[:mouse_move, 513, 181, 2, 11, 150] +[:mouse_move, 525, 179, 2, 12, 151] +[:mouse_move, 535, 176, 2, 13, 152] +[:mouse_move, 542, 174, 2, 14, 153] +[:mouse_move, 561, 164, 2, 15, 154] +[:mouse_move, 572, 156, 2, 16, 155] +[:mouse_move, 594, 136, 2, 17, 156] +[:mouse_move, 604, 125, 2, 18, 157] +[:mouse_move, 623, 99, 2, 19, 158] +[:mouse_move, 631, 85, 2, 20, 159] +[:mouse_move, 640, 68, 2, 21, 160] +[:mouse_move, 644, 58, 2, 22, 161] +[:mouse_move, 652, 42, 2, 23, 162] +[:mouse_move, 656, 36, 2, 24, 163] +[:mouse_move, 663, 26, 2, 25, 164] +[:mouse_move, 666, 21, 2, 26, 165] +[:mouse_move, 675, 10, 2, 27, 166] +[:mouse_move, 679, 5, 2, 28, 167] +[:mouse_move, 686, 0, 2, 29, 168] +[:mouse_move, 679, 2, 2, 30, 192] +[:mouse_move, 672, 12, 2, 31, 193] +[:mouse_move, 669, 18, 2, 32, 194] +[:mouse_move, 665, 24, 2, 33, 195] +[:mouse_move, 664, 26, 2, 34, 196] +[:mouse_move, 662, 29, 2, 35, 197] +[:mouse_move, 662, 30, 2, 36, 198] +[:mouse_move, 661, 31, 2, 37, 199] +[:mouse_move, 660, 31, 2, 38, 206] +[:mouse_move, 660, 32, 2, 39, 208] +[:mouse_move, 658, 34, 2, 40, 212] +[:mouse_move, 656, 39, 2, 41, 213] +[:mouse_move, 644, 63, 2, 42, 214] +[:mouse_move, 639, 74, 2, 43, 215] +[:mouse_move, 625, 107, 2, 44, 216] +[:mouse_move, 622, 114, 2, 45, 217] +[:mouse_move, 616, 131, 2, 46, 218] +[:mouse_move, 613, 140, 2, 47, 219] +[:key_down_player_one, 13, 0, 1, 48, 302] +[:key_held_player_one, 13, 0, 1, 49, 303] +[:key_held_player_one, 13, 0, 1, 50, 304] +[:key_held_player_one, 13, 0, 1, 51, 305] +[:key_held_player_one, 13, 0, 1, 52, 306] +[:key_held_player_one, 13, 0, 1, 53, 307] +[:key_held_player_one, 13, 0, 1, 54, 308] +[:key_held_player_one, 13, 0, 1, 55, 309] +[:key_held_player_one, 13, 0, 1, 56, 310] +[:key_held_player_one, 13, 0, 1, 57, 311] +[:key_up_player_one, 13, 0, 1, 58, 312] +[:key_down_player_one, 13, 0, 1, 59, 357] +[:key_held_player_one, 13, 0, 1, 60, 358] +[:key_held_player_one, 13, 0, 1, 61, 359] +[:key_held_player_one, 13, 0, 1, 62, 360] +[:key_held_player_one, 13, 0, 1, 63, 361] +[:key_held_player_one, 13, 0, 1, 64, 362] +[:key_held_player_one, 13, 0, 1, 65, 363] +[:key_held_player_one, 13, 0, 1, 66, 364] +[:key_up_player_one, 13, 0, 1, 67, 365] +[:key_down_player_one, 13, 0, 1, 68, 371] +[:key_held_player_one, 13, 0, 1, 69, 372] +[:key_held_player_one, 13, 0, 1, 70, 373] +[:key_held_player_one, 13, 0, 1, 71, 374] +[:key_held_player_one, 13, 0, 1, 72, 375] +[:key_held_player_one, 13, 0, 1, 73, 376] +[:key_held_player_one, 13, 0, 1, 74, 377] +[:key_held_player_one, 13, 0, 1, 75, 378] +[:key_up_player_one, 13, 0, 1, 76, 379] +[:key_down_player_one, 13, 0, 1, 77, 393] +[:key_held_player_one, 13, 0, 1, 78, 394] +[:key_held_player_one, 13, 0, 1, 79, 395] +[:key_held_player_one, 13, 0, 1, 80, 396] +[:key_held_player_one, 13, 0, 1, 81, 397] +[:key_held_player_one, 13, 0, 1, 82, 398] +[:key_held_player_one, 13, 0, 1, 83, 399] +[:key_held_player_one, 13, 0, 1, 84, 400] +[:key_held_player_one, 13, 0, 1, 85, 401] +[:key_held_player_one, 13, 0, 1, 86, 402] +[:key_held_player_one, 13, 0, 1, 87, 403] +[:key_up_player_one, 13, 0, 1, 88, 404] +[:key_down_player_one, 13, 0, 1, 89, 419] +[:key_held_player_one, 13, 0, 1, 90, 420] +[:key_held_player_one, 13, 0, 1, 91, 421] +[:key_held_player_one, 13, 0, 1, 92, 422] +[:key_held_player_one, 13, 0, 1, 93, 423] +[:key_held_player_one, 13, 0, 1, 94, 424] +[:key_up_player_one, 13, 0, 1, 95, 425] +[:key_down_player_one, 13, 0, 1, 96, 431] +[:key_held_player_one, 13, 0, 1, 97, 432] +[:key_held_player_one, 13, 0, 1, 98, 433] +[:key_held_player_one, 13, 0, 1, 99, 434] +[:key_up_player_one, 13, 0, 1, 100, 435] +[:key_down_player_one, 13, 0, 1, 101, 441] +[:key_held_player_one, 13, 0, 1, 102, 442] +[:key_held_player_one, 13, 0, 1, 103, 443] +[:key_held_player_one, 13, 0, 1, 104, 444] +[:key_held_player_one, 13, 0, 1, 105, 445] +[:key_held_player_one, 13, 0, 1, 106, 446] +[:key_up_player_one, 13, 0, 1, 107, 447] +[:key_down_player_one, 17, 0, 1, 108, 503] +[:key_held_player_one, 17, 0, 1, 109, 504] +[:key_held_player_one, 17, 0, 1, 110, 505] +[:key_held_player_one, 17, 0, 1, 111, 506] +[:key_held_player_one, 17, 0, 1, 112, 507] +[:key_held_player_one, 17, 0, 1, 113, 508] +[:key_held_player_one, 17, 0, 1, 114, 509] +[:key_up_player_one, 17, 0, 1, 115, 510] +[:key_down_player_one, 16, 0, 1, 116, 540] +[:key_held_player_one, 16, 0, 1, 117, 541] +[:key_held_player_one, 16, 0, 1, 118, 542] +[:key_held_player_one, 16, 0, 1, 119, 543] +[:key_held_player_one, 16, 0, 1, 120, 544] +[:key_held_player_one, 16, 0, 1, 121, 545] +[:key_held_player_one, 16, 0, 1, 122, 546] +[:key_held_player_one, 16, 0, 1, 123, 547] +[:key_held_player_one, 16, 0, 1, 124, 548] +[:key_held_player_one, 16, 0, 1, 125, 549] +[:key_held_player_one, 16, 0, 1, 126, 550] +[:key_held_player_one, 16, 0, 1, 127, 551] +[:key_held_player_one, 16, 0, 1, 128, 552] +[:key_held_player_one, 16, 0, 1, 129, 553] +[:key_held_player_one, 16, 0, 1, 130, 554] +[:key_held_player_one, 16, 0, 1, 131, 555] +[:key_held_player_one, 16, 0, 1, 132, 556] +[:key_held_player_one, 16, 0, 1, 133, 557] +[:key_up_player_one, 16, 0, 1, 134, 558] +[:key_down_player_one, 14, 0, 1, 135, 589] +[:key_held_player_one, 14, 0, 1, 136, 590] +[:key_held_player_one, 14, 0, 1, 137, 591] +[:key_held_player_one, 14, 0, 1, 138, 592] +[:key_held_player_one, 14, 0, 1, 139, 593] +[:key_held_player_one, 14, 0, 1, 140, 594] +[:key_held_player_one, 14, 0, 1, 141, 595] +[:key_held_player_one, 14, 0, 1, 142, 596] +[:key_held_player_one, 14, 0, 1, 143, 597] +[:key_held_player_one, 14, 0, 1, 144, 598] +[:key_held_player_one, 14, 0, 1, 145, 599] +[:key_held_player_one, 14, 0, 1, 146, 600] +[:key_held_player_one, 14, 0, 1, 147, 601] +[:key_held_player_one, 14, 0, 1, 148, 602] +[:key_held_player_one, 14, 0, 1, 149, 603] +[:key_held_player_one, 14, 0, 1, 150, 604] +[:key_held_player_one, 14, 0, 1, 151, 605] +[:key_held_player_one, 14, 0, 1, 152, 606] +[:key_up_player_one, 14, 0, 1, 153, 607] +[:key_down_player_one, 14, 0, 1, 154, 638] +[:key_held_player_one, 14, 0, 1, 155, 639] +[:key_held_player_one, 14, 0, 1, 156, 640] +[:key_held_player_one, 14, 0, 1, 157, 641] +[:key_held_player_one, 14, 0, 1, 158, 642] +[:key_held_player_one, 14, 0, 1, 159, 643] +[:key_held_player_one, 14, 0, 1, 160, 644] +[:key_held_player_one, 14, 0, 1, 161, 645] +[:key_held_player_one, 14, 0, 1, 162, 646] +[:key_held_player_one, 14, 0, 1, 163, 647] +[:key_held_player_one, 14, 0, 1, 164, 648] +[:key_held_player_one, 14, 0, 1, 165, 649] +[:key_held_player_one, 14, 0, 1, 166, 650] +[:key_held_player_one, 14, 0, 1, 167, 651] +[:key_held_player_one, 14, 0, 1, 168, 652] +[:key_held_player_one, 14, 0, 1, 169, 653] +[:key_held_player_one, 14, 0, 1, 170, 654] +[:key_up_player_one, 14, 0, 1, 171, 655] +[:key_down_player_one, 15, 0, 1, 172, 673] +[:key_held_player_one, 15, 0, 1, 173, 674] +[:key_held_player_one, 15, 0, 1, 174, 675] +[:key_held_player_one, 15, 0, 1, 175, 676] +[:key_held_player_one, 15, 0, 1, 176, 677] +[:key_held_player_one, 15, 0, 1, 177, 678] +[:key_held_player_one, 15, 0, 1, 178, 679] +[:key_held_player_one, 15, 0, 1, 179, 680] +[:key_held_player_one, 15, 0, 1, 180, 681] +[:key_held_player_one, 15, 0, 1, 181, 682] +[:key_held_player_one, 15, 0, 1, 182, 683] +[:key_held_player_one, 15, 0, 1, 183, 684] +[:key_held_player_one, 15, 0, 1, 184, 685] +[:key_held_player_one, 15, 0, 1, 185, 686] +[:key_held_player_one, 15, 0, 1, 186, 687] +[:key_held_player_one, 15, 0, 1, 187, 688] +[:key_held_player_one, 15, 0, 1, 188, 689] +[:key_held_player_one, 15, 0, 1, 189, 690] +[:key_held_player_one, 15, 0, 1, 190, 691] +[:key_held_player_one, 15, 0, 1, 191, 692] +[:key_up_player_one, 15, 0, 1, 192, 693] +[:key_down_player_one, 15, 0, 1, 193, 708] +[:key_held_player_one, 15, 0, 1, 194, 709] +[:key_held_player_one, 15, 0, 1, 195, 710] +[:key_held_player_one, 15, 0, 1, 196, 711] +[:key_held_player_one, 15, 0, 1, 197, 712] +[:key_held_player_one, 15, 0, 1, 198, 713] +[:key_held_player_one, 15, 0, 1, 199, 714] +[:key_held_player_one, 15, 0, 1, 200, 715] +[:key_held_player_one, 15, 0, 1, 201, 716] +[:key_held_player_one, 15, 0, 1, 202, 717] +[:key_up_player_one, 15, 0, 1, 203, 718] +[:key_down_player_one, 19, 0, 1, 204, 795] +[:key_held_player_one, 19, 0, 1, 205, 796] +[:key_held_player_one, 19, 0, 1, 206, 797] +[:key_held_player_one, 19, 0, 1, 207, 798] +[:key_held_player_one, 19, 0, 1, 208, 799] +[:key_held_player_one, 19, 0, 1, 209, 800] +[:key_held_player_one, 19, 0, 1, 210, 801] +[:key_held_player_one, 19, 0, 1, 211, 802] +[:key_held_player_one, 19, 0, 1, 212, 803] +[:key_held_player_one, 19, 0, 1, 213, 804] +[:key_held_player_one, 19, 0, 1, 214, 805] +[:key_held_player_one, 19, 0, 1, 215, 806] +[:key_up_player_one, 19, 0, 1, 216, 807] +[:key_down_player_one, 18, 0, 1, 217, 822] +[:key_held_player_one, 18, 0, 1, 218, 823] +[:key_held_player_one, 18, 0, 1, 219, 824] +[:key_held_player_one, 18, 0, 1, 220, 825] +[:key_held_player_one, 18, 0, 1, 221, 826] +[:key_held_player_one, 18, 0, 1, 222, 827] +[:key_held_player_one, 18, 0, 1, 223, 828] +[:key_held_player_one, 18, 0, 1, 224, 829] +[:key_held_player_one, 18, 0, 1, 225, 830] +[:key_held_player_one, 18, 0, 1, 226, 831] +[:key_held_player_one, 18, 0, 1, 227, 832] +[:key_held_player_one, 18, 0, 1, 228, 833] +[:key_up_player_one, 18, 0, 1, 229, 834] +[:key_down_player_one, 23, 0, 1, 230, 860] +[:key_held_player_one, 23, 0, 1, 231, 861] +[:key_held_player_one, 23, 0, 1, 232, 862] +[:key_held_player_one, 23, 0, 1, 233, 863] +[:key_held_player_one, 23, 0, 1, 234, 864] +[:key_held_player_one, 23, 0, 1, 235, 865] +[:key_held_player_one, 23, 0, 1, 236, 866] +[:key_held_player_one, 23, 0, 1, 237, 867] +[:key_held_player_one, 23, 0, 1, 238, 868] +[:key_held_player_one, 23, 0, 1, 239, 869] +[:key_held_player_one, 23, 0, 1, 240, 870] +[:key_held_player_one, 23, 0, 1, 241, 871] +[:key_held_player_one, 23, 0, 1, 242, 872] +[:key_up_player_one, 23, 0, 1, 243, 873] +[:key_down_player_one, 22, 0, 1, 244, 886] +[:key_held_player_one, 22, 0, 1, 245, 887] +[:key_held_player_one, 22, 0, 1, 246, 888] +[:key_held_player_one, 22, 0, 1, 247, 889] +[:key_held_player_one, 22, 0, 1, 248, 890] +[:key_held_player_one, 22, 0, 1, 249, 891] +[:key_held_player_one, 22, 0, 1, 250, 892] +[:key_held_player_one, 22, 0, 1, 251, 893] +[:key_held_player_one, 22, 0, 1, 252, 894] +[:key_held_player_one, 22, 0, 1, 253, 895] +[:key_held_player_one, 22, 0, 1, 254, 896] +[:key_held_player_one, 22, 0, 1, 255, 897] +[:key_held_player_one, 22, 0, 1, 256, 898] +[:key_up_player_one, 22, 0, 1, 257, 899] +[:key_down_player_one, 3, 0, 1, 258, 956] +[:key_down_player_one, 26, 0, 1, 259, 956] +[:key_held_player_one, 3, 0, 1, 260, 957] +[:key_held_player_one, 26, 0, 1, 261, 957] +[:key_held_player_one, 3, 0, 1, 262, 958] +[:key_held_player_one, 26, 0, 1, 263, 958] +[:key_held_player_one, 3, 0, 1, 264, 959] +[:key_held_player_one, 26, 0, 1, 265, 959] +[:key_held_player_one, 3, 0, 1, 266, 960] +[:key_held_player_one, 26, 0, 1, 267, 960] +[:key_held_player_one, 3, 0, 1, 268, 961] +[:key_held_player_one, 26, 0, 1, 269, 961] +[:key_held_player_one, 3, 0, 1, 270, 962] +[:key_held_player_one, 26, 0, 1, 271, 962] +[:key_held_player_one, 3, 0, 1, 272, 963] +[:key_held_player_one, 26, 0, 1, 273, 963] +[:key_held_player_one, 3, 0, 1, 274, 964] +[:key_held_player_one, 26, 0, 1, 275, 964] +[:key_held_player_one, 3, 0, 1, 276, 965] +[:key_held_player_one, 26, 0, 1, 277, 965] +[:key_held_player_one, 3, 0, 1, 278, 966] +[:key_held_player_one, 26, 0, 1, 279, 966] +[:key_held_player_one, 3, 0, 1, 280, 967] +[:key_held_player_one, 26, 0, 1, 281, 967] +[:key_up_player_one, 3, 0, 1, 282, 968] +[:key_up_player_one, 26, 0, 1, 283, 968] +[:key_down_player_one, 4, 0, 1, 284, 986] +[:key_down_player_one, 27, 0, 1, 285, 986] +[:key_held_player_one, 4, 0, 1, 286, 987] +[:key_held_player_one, 27, 0, 1, 287, 987] +[:key_held_player_one, 4, 0, 1, 288, 988] +[:key_held_player_one, 27, 0, 1, 289, 988] +[:key_held_player_one, 4, 0, 1, 290, 989] +[:key_held_player_one, 27, 0, 1, 291, 989] +[:key_held_player_one, 4, 0, 1, 292, 990] +[:key_held_player_one, 27, 0, 1, 293, 990] +[:key_held_player_one, 4, 0, 1, 294, 991] +[:key_held_player_one, 27, 0, 1, 295, 991] +[:key_held_player_one, 4, 0, 1, 296, 992] +[:key_held_player_one, 27, 0, 1, 297, 992] +[:key_held_player_one, 4, 0, 1, 298, 993] +[:key_held_player_one, 27, 0, 1, 299, 993] +[:key_held_player_one, 4, 0, 1, 300, 994] +[:key_held_player_one, 27, 0, 1, 301, 994] +[:key_held_player_one, 4, 0, 1, 302, 995] +[:key_held_player_one, 27, 0, 1, 303, 995] +[:key_held_player_one, 4, 0, 1, 304, 996] +[:key_held_player_one, 27, 0, 1, 305, 996] +[:key_up_player_one, 4, 0, 1, 306, 997] +[:key_up_player_one, 27, 0, 1, 307, 997] +[:key_down_player_one, 1, 0, 1, 308, 1010] +[:key_down_player_one, 24, 0, 1, 309, 1010] +[:key_held_player_one, 1, 0, 1, 310, 1011] +[:key_held_player_one, 24, 0, 1, 311, 1011] +[:key_held_player_one, 1, 0, 1, 312, 1012] +[:key_held_player_one, 24, 0, 1, 313, 1012] +[:key_held_player_one, 1, 0, 1, 314, 1013] +[:key_held_player_one, 24, 0, 1, 315, 1013] +[:key_held_player_one, 1, 0, 1, 316, 1014] +[:key_held_player_one, 24, 0, 1, 317, 1014] +[:key_held_player_one, 1, 0, 1, 318, 1015] +[:key_held_player_one, 24, 0, 1, 319, 1015] +[:key_held_player_one, 1, 0, 1, 320, 1016] +[:key_held_player_one, 24, 0, 1, 321, 1016] +[:key_held_player_one, 1, 0, 1, 322, 1017] +[:key_held_player_one, 24, 0, 1, 323, 1017] +[:key_held_player_one, 1, 0, 1, 324, 1018] +[:key_held_player_one, 24, 0, 1, 325, 1018] +[:key_held_player_one, 1, 0, 1, 326, 1019] +[:key_held_player_one, 24, 0, 1, 327, 1019] +[:key_held_player_one, 1, 0, 1, 328, 1020] +[:key_held_player_one, 24, 0, 1, 329, 1020] +[:key_held_player_one, 1, 0, 1, 330, 1021] +[:key_held_player_one, 24, 0, 1, 331, 1021] +[:key_up_player_one, 1, 0, 1, 332, 1022] +[:key_up_player_one, 24, 0, 1, 333, 1022] +[:key_down_player_one, 2, 0, 1, 334, 1035] +[:key_down_player_one, 25, 0, 1, 335, 1035] +[:key_held_player_one, 2, 0, 1, 336, 1036] +[:key_held_player_one, 25, 0, 1, 337, 1036] +[:key_held_player_one, 2, 0, 1, 338, 1037] +[:key_held_player_one, 25, 0, 1, 339, 1037] +[:key_held_player_one, 2, 0, 1, 340, 1038] +[:key_held_player_one, 25, 0, 1, 341, 1038] +[:key_held_player_one, 2, 0, 1, 342, 1039] +[:key_held_player_one, 25, 0, 1, 343, 1039] +[:key_held_player_one, 2, 0, 1, 344, 1040] +[:key_held_player_one, 25, 0, 1, 345, 1040] +[:key_held_player_one, 2, 0, 1, 346, 1041] +[:key_held_player_one, 25, 0, 1, 347, 1041] +[:key_held_player_one, 2, 0, 1, 348, 1042] +[:key_held_player_one, 25, 0, 1, 349, 1042] +[:key_held_player_one, 2, 0, 1, 350, 1043] +[:key_held_player_one, 25, 0, 1, 351, 1043] +[:key_held_player_one, 2, 0, 1, 352, 1044] +[:key_held_player_one, 25, 0, 1, 353, 1044] +[:key_held_player_one, 2, 0, 1, 354, 1045] +[:key_held_player_one, 25, 0, 1, 355, 1045] +[:key_up_player_one, 2, 0, 1, 356, 1046] +[:key_up_player_one, 25, 0, 1, 357, 1046] +[:left_analog_y_player_1, -5000, 0, 1, 358, 1065] +[:left_analog_x_player_1, 5000, 0, 1, 359, 1066] +[:left_analog_y_player_1, -12000, 0, 1, 360, 1066] +[:left_analog_x_player_1, 10000, 0, 1, 361, 1067] +[:left_analog_y_player_1, -18000, 0, 1, 362, 1067] +[:left_analog_x_player_1, 15000, 0, 1, 363, 1068] +[:left_analog_y_player_1, -27000, 0, 1, 364, 1068] +[:key_down_player_one, 1, 0, 1, 365, 1069] +[:left_analog_x_player_1, 18000, 0, 1, 366, 1069] +[:left_analog_y_player_1, -32000, 0, 1, 367, 1069] +[:key_held_player_one, 1, 0, 1, 368, 1070] +[:left_analog_x_player_1, 19000, 0, 1, 369, 1070] +[:key_held_player_one, 1, 0, 1, 370, 1071] +[:left_analog_x_player_1, 21000, 0, 1, 371, 1071] +[:key_held_player_one, 1, 0, 1, 372, 1072] +[:key_down_player_one, 4, 0, 1, 373, 1072] +[:key_held_player_one, 1, 0, 1, 374, 1073] +[:key_held_player_one, 4, 0, 1, 375, 1073] +[:key_held_player_one, 1, 0, 1, 376, 1074] +[:key_held_player_one, 4, 0, 1, 377, 1074] +[:key_held_player_one, 1, 0, 1, 378, 1075] +[:key_held_player_one, 4, 0, 1, 379, 1075] +[:left_analog_x_player_1, 18000, 0, 1, 380, 1075] +[:key_held_player_one, 1, 0, 1, 381, 1076] +[:key_up_player_one, 4, 0, 1, 382, 1076] +[:left_analog_x_player_1, 11000, 0, 1, 383, 1076] +[:key_held_player_one, 1, 0, 1, 384, 1077] +[:left_analog_x_player_1, 7000, 0, 1, 385, 1077] +[:key_held_player_one, 1, 0, 1, 386, 1078] +[:left_analog_x_player_1, 2000, 0, 1, 387, 1078] +[:key_held_player_one, 1, 0, 1, 388, 1079] +[:left_analog_x_player_1, 0, 0, 1, 389, 1079] +[:key_held_player_one, 1, 0, 1, 390, 1080] +[:left_analog_x_player_1, -1000, 0, 1, 391, 1080] +[:key_held_player_one, 1, 0, 1, 392, 1081] +[:left_analog_x_player_1, -7000, 0, 1, 393, 1081] +[:key_held_player_one, 1, 0, 1, 394, 1082] +[:left_analog_x_player_1, -11000, 0, 1, 395, 1082] +[:key_held_player_one, 1, 0, 1, 396, 1083] +[:left_analog_x_player_1, -17000, 0, 1, 397, 1083] +[:key_held_player_one, 1, 0, 1, 398, 1084] +[:left_analog_x_player_1, -21000, 0, 1, 399, 1084] +[:left_analog_y_player_1, -31000, 0, 1, 400, 1084] +[:key_held_player_one, 1, 0, 1, 401, 1085] +[:key_down_player_one, 3, 0, 1, 402, 1085] +[:left_analog_x_player_1, -24000, 0, 1, 403, 1085] +[:left_analog_y_player_1, -30000, 0, 1, 404, 1085] +[:key_held_player_one, 1, 0, 1, 405, 1086] +[:key_held_player_one, 3, 0, 1, 406, 1086] +[:left_analog_x_player_1, -27000, 0, 1, 407, 1086] +[:left_analog_y_player_1, -28000, 0, 1, 408, 1086] +[:key_held_player_one, 1, 0, 1, 409, 1087] +[:key_held_player_one, 3, 0, 1, 410, 1087] +[:left_analog_x_player_1, -30000, 0, 1, 411, 1087] +[:left_analog_y_player_1, -25000, 0, 1, 412, 1087] +[:key_held_player_one, 1, 0, 1, 413, 1088] +[:key_held_player_one, 3, 0, 1, 414, 1088] +[:left_analog_x_player_1, -31000, 0, 1, 415, 1088] +[:left_analog_y_player_1, -22000, 0, 1, 416, 1088] +[:key_held_player_one, 1, 0, 1, 417, 1089] +[:key_held_player_one, 3, 0, 1, 418, 1089] +[:left_analog_x_player_1, -32000, 0, 1, 419, 1089] +[:left_analog_y_player_1, -18000, 0, 1, 420, 1089] +[:key_up_player_one, 1, 0, 1, 421, 1090] +[:key_held_player_one, 3, 0, 1, 422, 1090] +[:left_analog_y_player_1, -15000, 0, 1, 423, 1090] +[:key_held_player_one, 3, 0, 1, 424, 1091] +[:left_analog_y_player_1, -10000, 0, 1, 425, 1091] +[:key_held_player_one, 3, 0, 1, 426, 1092] +[:left_analog_y_player_1, -4000, 0, 1, 427, 1092] +[:key_held_player_one, 3, 0, 1, 428, 1093] +[:left_analog_y_player_1, 0, 0, 1, 429, 1093] +[:key_held_player_one, 3, 0, 1, 430, 1094] +[:left_analog_y_player_1, 3000, 0, 1, 431, 1094] +[:key_held_player_one, 3, 0, 1, 432, 1095] +[:left_analog_y_player_1, 9000, 0, 1, 433, 1095] +[:key_held_player_one, 3, 0, 1, 434, 1096] +[:left_analog_y_player_1, 12000, 0, 1, 435, 1096] +[:key_held_player_one, 3, 0, 1, 436, 1097] +[:left_analog_y_player_1, 16000, 0, 1, 437, 1097] +[:key_held_player_one, 3, 0, 1, 438, 1098] +[:left_analog_y_player_1, 19000, 0, 1, 439, 1098] +[:key_held_player_one, 3, 0, 1, 440, 1099] +[:left_analog_x_player_1, -31000, 0, 1, 441, 1099] +[:left_analog_y_player_1, 21000, 0, 1, 442, 1099] +[:key_down_player_one, 2, 0, 1, 443, 1100] +[:key_held_player_one, 3, 0, 1, 444, 1100] +[:left_analog_x_player_1, -28000, 0, 1, 445, 1100] +[:left_analog_y_player_1, 25000, 0, 1, 446, 1100] +[:key_held_player_one, 2, 0, 1, 447, 1101] +[:key_held_player_one, 3, 0, 1, 448, 1101] +[:left_analog_x_player_1, -26000, 0, 1, 449, 1101] +[:left_analog_y_player_1, 28000, 0, 1, 450, 1101] +[:key_held_player_one, 2, 0, 1, 451, 1102] +[:key_held_player_one, 3, 0, 1, 452, 1102] +[:left_analog_x_player_1, -22000, 0, 1, 453, 1102] +[:left_analog_y_player_1, 30000, 0, 1, 454, 1102] +[:key_held_player_one, 2, 0, 1, 455, 1103] +[:key_held_player_one, 3, 0, 1, 456, 1103] +[:left_analog_x_player_1, -19000, 0, 1, 457, 1103] +[:left_analog_y_player_1, 31000, 0, 1, 458, 1103] +[:key_held_player_one, 2, 0, 1, 459, 1104] +[:key_up_player_one, 3, 0, 1, 460, 1104] +[:left_analog_x_player_1, -14000, 0, 1, 461, 1104] +[:left_analog_y_player_1, 32000, 0, 1, 462, 1104] +[:key_held_player_one, 2, 0, 1, 463, 1105] +[:left_analog_x_player_1, -9000, 0, 1, 464, 1105] +[:key_held_player_one, 2, 0, 1, 465, 1106] +[:left_analog_x_player_1, -2000, 0, 1, 466, 1106] +[:key_held_player_one, 2, 0, 1, 467, 1107] +[:left_analog_x_player_1, 0, 0, 1, 468, 1107] +[:key_held_player_one, 2, 0, 1, 469, 1108] +[:left_analog_x_player_1, 11000, 0, 1, 470, 1108] +[:key_held_player_one, 2, 0, 1, 471, 1109] +[:left_analog_x_player_1, 18000, 0, 1, 472, 1109] +[:key_held_player_one, 2, 0, 1, 473, 1110] +[:left_analog_x_player_1, 25000, 0, 1, 474, 1110] +[:left_analog_y_player_1, 29000, 0, 1, 475, 1110] +[:key_held_player_one, 2, 0, 1, 476, 1111] +[:key_down_player_one, 4, 0, 1, 477, 1111] +[:left_analog_x_player_1, 30000, 0, 1, 478, 1111] +[:left_analog_y_player_1, 25000, 0, 1, 479, 1111] +[:key_held_player_one, 2, 0, 1, 480, 1112] +[:key_held_player_one, 4, 0, 1, 481, 1112] +[:left_analog_x_player_1, 32000, 0, 1, 482, 1112] +[:left_analog_y_player_1, 20000, 0, 1, 483, 1112] +[:key_held_player_one, 2, 0, 1, 484, 1113] +[:key_held_player_one, 4, 0, 1, 485, 1113] +[:left_analog_y_player_1, 11000, 0, 1, 486, 1113] +[:key_up_player_one, 2, 0, 1, 487, 1114] +[:key_held_player_one, 4, 0, 1, 488, 1114] +[:left_analog_y_player_1, 4000, 0, 1, 489, 1114] +[:key_held_player_one, 4, 0, 1, 490, 1115] +[:left_analog_y_player_1, 0, 0, 1, 491, 1115] +[:key_held_player_one, 4, 0, 1, 492, 1116] +[:key_held_player_one, 4, 0, 1, 493, 1117] +[:left_analog_y_player_1, -4000, 0, 1, 494, 1117] +[:key_held_player_one, 4, 0, 1, 495, 1118] +[:left_analog_y_player_1, -10000, 0, 1, 496, 1118] +[:key_held_player_one, 4, 0, 1, 497, 1119] +[:left_analog_y_player_1, -13000, 0, 1, 498, 1119] +[:key_held_player_one, 4, 0, 1, 499, 1120] +[:left_analog_y_player_1, -17000, 0, 1, 500, 1120] +[:key_held_player_one, 4, 0, 1, 501, 1121] +[:left_analog_x_player_1, 31000, 0, 1, 502, 1121] +[:left_analog_y_player_1, -21000, 0, 1, 503, 1121] +[:key_down_player_one, 1, 0, 1, 504, 1122] +[:key_held_player_one, 4, 0, 1, 505, 1122] +[:left_analog_x_player_1, 29000, 0, 1, 506, 1122] +[:left_analog_y_player_1, -25000, 0, 1, 507, 1122] +[:key_held_player_one, 1, 0, 1, 508, 1123] +[:key_held_player_one, 4, 0, 1, 509, 1123] +[:left_analog_x_player_1, 27000, 0, 1, 510, 1123] +[:left_analog_y_player_1, -27000, 0, 1, 511, 1123] +[:key_held_player_one, 1, 0, 1, 512, 1124] +[:key_held_player_one, 4, 0, 1, 513, 1124] +[:left_analog_x_player_1, 26000, 0, 1, 514, 1124] +[:left_analog_y_player_1, -28000, 0, 1, 515, 1124] +[:key_held_player_one, 1, 0, 1, 516, 1125] +[:key_held_player_one, 4, 0, 1, 517, 1125] +[:left_analog_x_player_1, 22000, 0, 1, 518, 1125] +[:left_analog_y_player_1, -30000, 0, 1, 519, 1125] +[:key_held_player_one, 1, 0, 1, 520, 1126] +[:key_held_player_one, 4, 0, 1, 521, 1126] +[:left_analog_x_player_1, 20000, 0, 1, 522, 1126] +[:left_analog_y_player_1, -31000, 0, 1, 523, 1126] +[:key_held_player_one, 1, 0, 1, 524, 1127] +[:key_held_player_one, 4, 0, 1, 525, 1127] +[:left_analog_x_player_1, 16000, 0, 1, 526, 1127] +[:left_analog_y_player_1, -32000, 0, 1, 527, 1127] +[:key_held_player_one, 1, 0, 1, 528, 1128] +[:key_up_player_one, 4, 0, 1, 529, 1128] +[:left_analog_x_player_1, 11000, 0, 1, 530, 1128] +[:key_held_player_one, 1, 0, 1, 531, 1129] +[:left_analog_x_player_1, 7000, 0, 1, 532, 1129] +[:key_held_player_one, 1, 0, 1, 533, 1130] +[:left_analog_x_player_1, 4000, 0, 1, 534, 1130] +[:key_held_player_one, 1, 0, 1, 535, 1131] +[:left_analog_x_player_1, 0, 0, 1, 536, 1131] +[:key_held_player_one, 1, 0, 1, 537, 1132] +[:key_held_player_one, 1, 0, 1, 538, 1133] +[:left_analog_x_player_1, -3000, 0, 1, 539, 1133] +[:key_held_player_one, 1, 0, 1, 540, 1134] +[:left_analog_x_player_1, -7000, 0, 1, 541, 1134] +[:key_held_player_one, 1, 0, 1, 542, 1135] +[:left_analog_x_player_1, -11000, 0, 1, 543, 1135] +[:key_held_player_one, 1, 0, 1, 544, 1136] +[:left_analog_x_player_1, -16000, 0, 1, 545, 1136] +[:key_held_player_one, 1, 0, 1, 546, 1137] +[:left_analog_x_player_1, -19000, 0, 1, 547, 1137] +[:left_analog_y_player_1, -30000, 0, 1, 548, 1137] +[:key_held_player_one, 1, 0, 1, 549, 1138] +[:left_analog_x_player_1, -23000, 0, 1, 550, 1138] +[:left_analog_y_player_1, -29000, 0, 1, 551, 1138] +[:key_held_player_one, 1, 0, 1, 552, 1139] +[:key_down_player_one, 3, 0, 1, 553, 1139] +[:left_analog_x_player_1, -25000, 0, 1, 554, 1139] +[:left_analog_y_player_1, -27000, 0, 1, 555, 1139] +[:key_held_player_one, 1, 0, 1, 556, 1140] +[:key_held_player_one, 3, 0, 1, 557, 1140] +[:left_analog_x_player_1, -27000, 0, 1, 558, 1140] +[:left_analog_y_player_1, -25000, 0, 1, 559, 1140] +[:key_held_player_one, 1, 0, 1, 560, 1141] +[:key_held_player_one, 3, 0, 1, 561, 1141] +[:left_analog_x_player_1, -28000, 0, 1, 562, 1141] +[:left_analog_y_player_1, -23000, 0, 1, 563, 1141] +[:key_held_player_one, 1, 0, 1, 564, 1142] +[:key_held_player_one, 3, 0, 1, 565, 1142] +[:left_analog_x_player_1, -30000, 0, 1, 566, 1142] +[:left_analog_y_player_1, -20000, 0, 1, 567, 1142] +[:key_held_player_one, 1, 0, 1, 568, 1143] +[:key_held_player_one, 3, 0, 1, 569, 1143] +[:left_analog_x_player_1, -32000, 0, 1, 570, 1143] +[:left_analog_y_player_1, -18000, 0, 1, 571, 1143] +[:key_up_player_one, 1, 0, 1, 572, 1144] +[:key_held_player_one, 3, 0, 1, 573, 1144] +[:left_analog_y_player_1, -14000, 0, 1, 574, 1144] +[:key_held_player_one, 3, 0, 1, 575, 1145] +[:left_analog_y_player_1, -11000, 0, 1, 576, 1145] +[:key_held_player_one, 3, 0, 1, 577, 1146] +[:left_analog_y_player_1, -6000, 0, 1, 578, 1146] +[:key_held_player_one, 3, 0, 1, 579, 1147] +[:left_analog_y_player_1, -1000, 0, 1, 580, 1147] +[:key_held_player_one, 3, 0, 1, 581, 1148] +[:left_analog_y_player_1, 2000, 0, 1, 582, 1148] +[:key_held_player_one, 3, 0, 1, 583, 1149] +[:left_analog_y_player_1, 7000, 0, 1, 584, 1149] +[:key_held_player_one, 3, 0, 1, 585, 1150] +[:left_analog_y_player_1, 12000, 0, 1, 586, 1150] +[:key_held_player_one, 3, 0, 1, 587, 1151] +[:left_analog_y_player_1, 17000, 0, 1, 588, 1151] +[:key_held_player_one, 3, 0, 1, 589, 1152] +[:left_analog_x_player_1, -31000, 0, 1, 590, 1152] +[:left_analog_y_player_1, 20000, 0, 1, 591, 1152] +[:key_down_player_one, 2, 0, 1, 592, 1153] +[:key_held_player_one, 3, 0, 1, 593, 1153] +[:left_analog_x_player_1, -28000, 0, 1, 594, 1153] +[:left_analog_y_player_1, 24000, 0, 1, 595, 1153] +[:key_held_player_one, 2, 0, 1, 596, 1154] +[:key_held_player_one, 3, 0, 1, 597, 1154] +[:left_analog_x_player_1, -25000, 0, 1, 598, 1154] +[:left_analog_y_player_1, 28000, 0, 1, 599, 1154] +[:key_held_player_one, 2, 0, 1, 600, 1155] +[:key_held_player_one, 3, 0, 1, 601, 1155] +[:left_analog_x_player_1, -22000, 0, 1, 602, 1155] +[:left_analog_y_player_1, 29000, 0, 1, 603, 1155] +[:key_held_player_one, 2, 0, 1, 604, 1156] +[:key_held_player_one, 3, 0, 1, 605, 1156] +[:left_analog_x_player_1, -19000, 0, 1, 606, 1156] +[:left_analog_y_player_1, 31000, 0, 1, 607, 1156] +[:key_held_player_one, 2, 0, 1, 608, 1157] +[:key_up_player_one, 3, 0, 1, 609, 1157] +[:left_analog_x_player_1, -15000, 0, 1, 610, 1157] +[:left_analog_y_player_1, 32000, 0, 1, 611, 1157] +[:key_held_player_one, 2, 0, 1, 612, 1158] +[:left_analog_x_player_1, -11000, 0, 1, 613, 1158] +[:key_held_player_one, 2, 0, 1, 614, 1159] +[:left_analog_x_player_1, -3000, 0, 1, 615, 1159] +[:key_held_player_one, 2, 0, 1, 616, 1160] +[:left_analog_x_player_1, 0, 0, 1, 617, 1160] +[:key_held_player_one, 2, 0, 1, 618, 1161] +[:left_analog_x_player_1, 5000, 0, 1, 619, 1161] +[:key_held_player_one, 2, 0, 1, 620, 1162] +[:left_analog_x_player_1, 12000, 0, 1, 621, 1162] +[:key_held_player_one, 2, 0, 1, 622, 1163] +[:left_analog_x_player_1, 17000, 0, 1, 623, 1163] +[:key_held_player_one, 2, 0, 1, 624, 1164] +[:left_analog_x_player_1, 22000, 0, 1, 625, 1164] +[:left_analog_y_player_1, 31000, 0, 1, 626, 1164] +[:key_held_player_one, 2, 0, 1, 627, 1165] +[:key_down_player_one, 4, 0, 1, 628, 1165] +[:left_analog_x_player_1, 26000, 0, 1, 629, 1165] +[:left_analog_y_player_1, 28000, 0, 1, 630, 1165] +[:key_held_player_one, 2, 0, 1, 631, 1166] +[:key_held_player_one, 4, 0, 1, 632, 1166] +[:left_analog_x_player_1, 29000, 0, 1, 633, 1166] +[:left_analog_y_player_1, 24000, 0, 1, 634, 1166] +[:key_held_player_one, 2, 0, 1, 635, 1167] +[:key_held_player_one, 4, 0, 1, 636, 1167] +[:left_analog_x_player_1, 31000, 0, 1, 637, 1167] +[:left_analog_y_player_1, 20000, 0, 1, 638, 1167] +[:key_held_player_one, 2, 0, 1, 639, 1168] +[:key_held_player_one, 4, 0, 1, 640, 1168] +[:left_analog_x_player_1, 32000, 0, 1, 641, 1168] +[:left_analog_y_player_1, 15000, 0, 1, 642, 1168] +[:key_up_player_one, 2, 0, 1, 643, 1169] +[:key_held_player_one, 4, 0, 1, 644, 1169] +[:left_analog_y_player_1, 9000, 0, 1, 645, 1169] +[:key_held_player_one, 4, 0, 1, 646, 1170] +[:left_analog_y_player_1, 4000, 0, 1, 647, 1170] +[:key_held_player_one, 4, 0, 1, 648, 1171] +[:left_analog_y_player_1, 0, 0, 1, 649, 1171] +[:key_held_player_one, 4, 0, 1, 650, 1172] +[:left_analog_y_player_1, -4000, 0, 1, 651, 1172] +[:key_held_player_one, 4, 0, 1, 652, 1173] +[:left_analog_y_player_1, -10000, 0, 1, 653, 1173] +[:key_held_player_one, 4, 0, 1, 654, 1174] +[:left_analog_y_player_1, -16000, 0, 1, 655, 1174] +[:key_held_player_one, 4, 0, 1, 656, 1175] +[:left_analog_x_player_1, 30000, 0, 1, 657, 1175] +[:left_analog_y_player_1, -24000, 0, 1, 658, 1175] +[:key_down_player_one, 1, 0, 1, 659, 1176] +[:key_held_player_one, 4, 0, 1, 660, 1176] +[:left_analog_x_player_1, 27000, 0, 1, 661, 1176] +[:left_analog_y_player_1, -26000, 0, 1, 662, 1176] +[:key_held_player_one, 1, 0, 1, 663, 1177] +[:key_held_player_one, 4, 0, 1, 664, 1177] +[:left_analog_x_player_1, 24000, 0, 1, 665, 1177] +[:left_analog_y_player_1, -29000, 0, 1, 666, 1177] +[:key_held_player_one, 1, 0, 1, 667, 1178] +[:key_held_player_one, 4, 0, 1, 668, 1178] +[:left_analog_x_player_1, 20000, 0, 1, 669, 1178] +[:left_analog_y_player_1, -31000, 0, 1, 670, 1178] +[:key_held_player_one, 1, 0, 1, 671, 1179] +[:key_held_player_one, 4, 0, 1, 672, 1179] +[:left_analog_x_player_1, 15000, 0, 1, 673, 1179] +[:left_analog_y_player_1, -32000, 0, 1, 674, 1179] +[:key_held_player_one, 1, 0, 1, 675, 1180] +[:key_up_player_one, 4, 0, 1, 676, 1180] +[:left_analog_x_player_1, 10000, 0, 1, 677, 1180] +[:key_held_player_one, 1, 0, 1, 678, 1181] +[:left_analog_x_player_1, 6000, 0, 1, 679, 1181] +[:key_held_player_one, 1, 0, 1, 680, 1182] +[:left_analog_x_player_1, 1000, 0, 1, 681, 1182] +[:key_held_player_one, 1, 0, 1, 682, 1183] +[:left_analog_x_player_1, 0, 0, 1, 683, 1183] +[:key_held_player_one, 1, 0, 1, 684, 1184] +[:left_analog_x_player_1, -4000, 0, 1, 685, 1184] +[:key_held_player_one, 1, 0, 1, 686, 1185] +[:left_analog_x_player_1, -10000, 0, 1, 687, 1185] +[:key_held_player_one, 1, 0, 1, 688, 1186] +[:left_analog_x_player_1, -14000, 0, 1, 689, 1186] +[:key_held_player_one, 1, 0, 1, 690, 1187] +[:left_analog_x_player_1, -20000, 0, 1, 691, 1187] +[:left_analog_y_player_1, -30000, 0, 1, 692, 1187] +[:key_held_player_one, 1, 0, 1, 693, 1188] +[:key_down_player_one, 3, 0, 1, 694, 1188] +[:left_analog_x_player_1, -24000, 0, 1, 695, 1188] +[:left_analog_y_player_1, -28000, 0, 1, 696, 1188] +[:key_held_player_one, 1, 0, 1, 697, 1189] +[:key_held_player_one, 3, 0, 1, 698, 1189] +[:left_analog_x_player_1, -27000, 0, 1, 699, 1189] +[:left_analog_y_player_1, -25000, 0, 1, 700, 1189] +[:key_held_player_one, 1, 0, 1, 701, 1190] +[:key_held_player_one, 3, 0, 1, 702, 1190] +[:left_analog_x_player_1, -30000, 0, 1, 703, 1190] +[:left_analog_y_player_1, -20000, 0, 1, 704, 1190] +[:key_held_player_one, 1, 0, 1, 705, 1191] +[:key_held_player_one, 3, 0, 1, 706, 1191] +[:left_analog_x_player_1, -32000, 0, 1, 707, 1191] +[:left_analog_y_player_1, -15000, 0, 1, 708, 1191] +[:key_up_player_one, 1, 0, 1, 709, 1192] +[:key_held_player_one, 3, 0, 1, 710, 1192] +[:left_analog_y_player_1, -9000, 0, 1, 711, 1192] +[:key_held_player_one, 3, 0, 1, 712, 1193] +[:left_analog_y_player_1, -5000, 0, 1, 713, 1193] +[:key_held_player_one, 3, 0, 1, 714, 1194] +[:left_analog_y_player_1, -1000, 0, 1, 715, 1194] +[:key_held_player_one, 3, 0, 1, 716, 1195] +[:left_analog_y_player_1, 0, 0, 1, 717, 1195] +[:key_held_player_one, 3, 0, 1, 718, 1196] +[:left_analog_y_player_1, 2000, 0, 1, 719, 1196] +[:key_held_player_one, 3, 0, 1, 720, 1197] +[:left_analog_y_player_1, 3000, 0, 1, 721, 1197] +[:key_held_player_one, 3, 0, 1, 722, 1198] +[:left_analog_x_player_1, -30000, 0, 1, 723, 1198] +[:left_analog_y_player_1, 4000, 0, 1, 724, 1198] +[:key_held_player_one, 3, 0, 1, 725, 1199] +[:left_analog_x_player_1, -19000, 0, 1, 726, 1199] +[:key_up_player_one, 3, 0, 1, 727, 1200] +[:left_analog_x_player_1, 0, 0, 1, 728, 1200] +[:left_analog_y_player_1, 0, 0, 1, 729, 1200] +[:right_analog_x_player_1, 1000, 0, 1, 730, 1225] +[:right_analog_x_player_1, 5000, 0, 1, 731, 1226] +[:right_analog_x_player_1, 11000, 0, 1, 732, 1227] +[:right_analog_x_player_1, 17000, 0, 1, 733, 1228] +[:right_analog_x_player_1, 22000, 0, 1, 734, 1229] +[:key_down_player_one, 4, 0, 1, 735, 1230] +[:right_analog_x_player_1, 26000, 0, 1, 736, 1230] +[:right_analog_y_player_1, -2000, 0, 1, 737, 1230] +[:key_held_player_one, 4, 0, 1, 738, 1231] +[:right_analog_x_player_1, 31000, 0, 1, 739, 1231] +[:right_analog_y_player_1, -10000, 0, 1, 740, 1231] +[:key_held_player_one, 4, 0, 1, 741, 1232] +[:right_analog_x_player_1, 32000, 0, 1, 742, 1232] +[:right_analog_y_player_1, -21000, 0, 1, 743, 1232] +[:key_down_player_one, 1, 0, 1, 744, 1233] +[:key_held_player_one, 4, 0, 1, 745, 1233] +[:right_analog_y_player_1, -24000, 0, 1, 746, 1233] +[:key_held_player_one, 1, 0, 1, 747, 1234] +[:key_held_player_one, 4, 0, 1, 748, 1234] +[:right_analog_x_player_1, 31000, 0, 1, 749, 1234] +[:right_analog_y_player_1, -28000, 0, 1, 750, 1234] +[:key_held_player_one, 1, 0, 1, 751, 1235] +[:key_held_player_one, 4, 0, 1, 752, 1235] +[:right_analog_x_player_1, 29000, 0, 1, 753, 1235] +[:right_analog_y_player_1, -31000, 0, 1, 754, 1235] +[:key_held_player_one, 1, 0, 1, 755, 1236] +[:key_held_player_one, 4, 0, 1, 756, 1236] +[:right_analog_x_player_1, 24000, 0, 1, 757, 1236] +[:right_analog_y_player_1, -32000, 0, 1, 758, 1236] +[:key_held_player_one, 1, 0, 1, 759, 1237] +[:key_held_player_one, 4, 0, 1, 760, 1237] +[:right_analog_x_player_1, 19000, 0, 1, 761, 1237] +[:key_held_player_one, 1, 0, 1, 762, 1238] +[:key_up_player_one, 4, 0, 1, 763, 1238] +[:right_analog_x_player_1, 15000, 0, 1, 764, 1238] +[:key_held_player_one, 1, 0, 1, 765, 1239] +[:right_analog_x_player_1, 11000, 0, 1, 766, 1239] +[:key_held_player_one, 1, 0, 1, 767, 1240] +[:right_analog_x_player_1, 10000, 0, 1, 768, 1240] +[:key_held_player_one, 1, 0, 1, 769, 1241] +[:right_analog_x_player_1, 8000, 0, 1, 770, 1241] +[:key_held_player_one, 1, 0, 1, 771, 1242] +[:right_analog_x_player_1, 6000, 0, 1, 772, 1242] +[:key_held_player_one, 1, 0, 1, 773, 1243] +[:right_analog_x_player_1, 2000, 0, 1, 774, 1243] +[:key_held_player_one, 1, 0, 1, 775, 1244] +[:right_analog_x_player_1, 0, 0, 1, 776, 1244] +[:key_held_player_one, 1, 0, 1, 777, 1245] +[:right_analog_x_player_1, -9000, 0, 1, 778, 1245] +[:key_held_player_one, 1, 0, 1, 779, 1246] +[:right_analog_x_player_1, -20000, 0, 1, 780, 1246] +[:key_held_player_one, 1, 0, 1, 781, 1247] +[:key_down_player_one, 3, 0, 1, 782, 1247] +[:right_analog_x_player_1, -26000, 0, 1, 783, 1247] +[:right_analog_y_player_1, -31000, 0, 1, 784, 1247] +[:key_held_player_one, 1, 0, 1, 785, 1248] +[:key_held_player_one, 3, 0, 1, 786, 1248] +[:right_analog_x_player_1, -30000, 0, 1, 787, 1248] +[:right_analog_y_player_1, -28000, 0, 1, 788, 1248] +[:key_held_player_one, 1, 0, 1, 789, 1249] +[:key_held_player_one, 3, 0, 1, 790, 1249] +[:right_analog_x_player_1, -32000, 0, 1, 791, 1249] +[:right_analog_y_player_1, -23000, 0, 1, 792, 1249] +[:key_held_player_one, 1, 0, 1, 793, 1250] +[:key_held_player_one, 3, 0, 1, 794, 1250] +[:right_analog_y_player_1, -20000, 0, 1, 795, 1250] +[:key_held_player_one, 1, 0, 1, 796, 1251] +[:key_held_player_one, 3, 0, 1, 797, 1251] +[:right_analog_y_player_1, -15000, 0, 1, 798, 1251] +[:key_up_player_one, 1, 0, 1, 799, 1252] +[:key_held_player_one, 3, 0, 1, 800, 1252] +[:right_analog_y_player_1, -11000, 0, 1, 801, 1252] +[:key_held_player_one, 3, 0, 1, 802, 1253] +[:right_analog_y_player_1, -7000, 0, 1, 803, 1253] +[:key_held_player_one, 3, 0, 1, 804, 1254] +[:right_analog_y_player_1, -3000, 0, 1, 805, 1254] +[:key_held_player_one, 3, 0, 1, 806, 1255] +[:right_analog_y_player_1, 0, 0, 1, 807, 1255] +[:key_held_player_one, 3, 0, 1, 808, 1256] +[:key_held_player_one, 3, 0, 1, 809, 1257] +[:right_analog_y_player_1, 5000, 0, 1, 810, 1257] +[:key_held_player_one, 3, 0, 1, 811, 1258] +[:right_analog_y_player_1, 11000, 0, 1, 812, 1258] +[:key_held_player_one, 3, 0, 1, 813, 1259] +[:right_analog_y_player_1, 16000, 0, 1, 814, 1259] +[:key_held_player_one, 3, 0, 1, 815, 1260] +[:right_analog_x_player_1, -31000, 0, 1, 816, 1260] +[:right_analog_y_player_1, 20000, 0, 1, 817, 1260] +[:key_down_player_one, 2, 0, 1, 818, 1261] +[:key_held_player_one, 3, 0, 1, 819, 1261] +[:right_analog_x_player_1, -30000, 0, 1, 820, 1261] +[:right_analog_y_player_1, 23000, 0, 1, 821, 1261] +[:key_held_player_one, 2, 0, 1, 822, 1262] +[:key_held_player_one, 3, 0, 1, 823, 1262] +[:right_analog_x_player_1, -27000, 0, 1, 824, 1262] +[:right_analog_y_player_1, 27000, 0, 1, 825, 1262] +[:key_held_player_one, 2, 0, 1, 826, 1263] +[:key_held_player_one, 3, 0, 1, 827, 1263] +[:right_analog_x_player_1, -25000, 0, 1, 828, 1263] +[:right_analog_y_player_1, 29000, 0, 1, 829, 1263] +[:key_held_player_one, 2, 0, 1, 830, 1264] +[:key_held_player_one, 3, 0, 1, 831, 1264] +[:right_analog_x_player_1, -22000, 0, 1, 832, 1264] +[:right_analog_y_player_1, 31000, 0, 1, 833, 1264] +[:key_held_player_one, 2, 0, 1, 834, 1265] +[:key_held_player_one, 3, 0, 1, 835, 1265] +[:right_analog_x_player_1, -19000, 0, 1, 836, 1265] +[:right_analog_y_player_1, 32000, 0, 1, 837, 1265] +[:key_held_player_one, 2, 0, 1, 838, 1266] +[:key_up_player_one, 3, 0, 1, 839, 1266] +[:right_analog_x_player_1, -15000, 0, 1, 840, 1266] +[:key_held_player_one, 2, 0, 1, 841, 1267] +[:right_analog_x_player_1, -11000, 0, 1, 842, 1267] +[:key_held_player_one, 2, 0, 1, 843, 1268] +[:right_analog_x_player_1, -9000, 0, 1, 844, 1268] +[:key_held_player_one, 2, 0, 1, 845, 1269] +[:right_analog_x_player_1, -7000, 0, 1, 846, 1269] +[:key_held_player_one, 2, 0, 1, 847, 1270] +[:right_analog_x_player_1, -3000, 0, 1, 848, 1270] +[:key_held_player_one, 2, 0, 1, 849, 1271] +[:right_analog_x_player_1, 0, 0, 1, 850, 1271] +[:key_held_player_one, 2, 0, 1, 851, 1272] +[:right_analog_x_player_1, 5000, 0, 1, 852, 1272] +[:key_held_player_one, 2, 0, 1, 853, 1273] +[:right_analog_x_player_1, 17000, 0, 1, 854, 1273] +[:key_held_player_one, 2, 0, 1, 855, 1274] +[:right_analog_x_player_1, 30000, 0, 1, 856, 1274] +[:right_analog_y_player_1, 25000, 0, 1, 857, 1274] +[:key_held_player_one, 2, 0, 1, 858, 1275] +[:key_down_player_one, 4, 0, 1, 859, 1275] +[:right_analog_x_player_1, 32000, 0, 1, 860, 1275] +[:right_analog_y_player_1, 14000, 0, 1, 861, 1275] +[:key_up_player_one, 2, 0, 1, 862, 1276] +[:key_held_player_one, 4, 0, 1, 863, 1276] +[:right_analog_y_player_1, 11000, 0, 1, 864, 1276] +[:key_held_player_one, 4, 0, 1, 865, 1277] +[:right_analog_y_player_1, 8000, 0, 1, 866, 1277] +[:key_held_player_one, 4, 0, 1, 867, 1278] +[:right_analog_y_player_1, 5000, 0, 1, 868, 1278] +[:key_held_player_one, 4, 0, 1, 869, 1279] +[:right_analog_y_player_1, 1000, 0, 1, 870, 1279] +[:key_held_player_one, 4, 0, 1, 871, 1280] +[:right_analog_y_player_1, -2000, 0, 1, 872, 1280] +[:key_held_player_one, 4, 0, 1, 873, 1281] +[:right_analog_y_player_1, -9000, 0, 1, 874, 1281] +[:key_held_player_one, 4, 0, 1, 875, 1282] +[:right_analog_y_player_1, -18000, 0, 1, 876, 1282] +[:key_held_player_one, 4, 0, 1, 877, 1283] +[:right_analog_x_player_1, 31000, 0, 1, 878, 1283] +[:right_analog_y_player_1, -23000, 0, 1, 879, 1283] +[:key_down_player_one, 1, 0, 1, 880, 1284] +[:key_held_player_one, 4, 0, 1, 881, 1284] +[:right_analog_x_player_1, 29000, 0, 1, 882, 1284] +[:right_analog_y_player_1, -26000, 0, 1, 883, 1284] +[:key_held_player_one, 1, 0, 1, 884, 1285] +[:key_held_player_one, 4, 0, 1, 885, 1285] +[:right_analog_x_player_1, 26000, 0, 1, 886, 1285] +[:right_analog_y_player_1, -29000, 0, 1, 887, 1285] +[:key_held_player_one, 1, 0, 1, 888, 1286] +[:key_held_player_one, 4, 0, 1, 889, 1286] +[:right_analog_x_player_1, 23000, 0, 1, 890, 1286] +[:right_analog_y_player_1, -31000, 0, 1, 891, 1286] +[:key_held_player_one, 1, 0, 1, 892, 1287] +[:key_held_player_one, 4, 0, 1, 893, 1287] +[:right_analog_x_player_1, 16000, 0, 1, 894, 1287] +[:right_analog_y_player_1, -32000, 0, 1, 895, 1287] +[:key_held_player_one, 1, 0, 1, 896, 1288] +[:key_up_player_one, 4, 0, 1, 897, 1288] +[:right_analog_x_player_1, 11000, 0, 1, 898, 1288] +[:key_held_player_one, 1, 0, 1, 899, 1289] +[:right_analog_x_player_1, 8000, 0, 1, 900, 1289] +[:key_held_player_one, 1, 0, 1, 901, 1290] +[:right_analog_x_player_1, 2000, 0, 1, 902, 1290] +[:key_held_player_one, 1, 0, 1, 903, 1291] +[:right_analog_x_player_1, 0, 0, 1, 904, 1291] +[:key_held_player_one, 1, 0, 1, 905, 1292] +[:right_analog_x_player_1, -3000, 0, 1, 906, 1292] +[:key_held_player_one, 1, 0, 1, 907, 1293] +[:right_analog_x_player_1, -12000, 0, 1, 908, 1293] +[:key_held_player_one, 1, 0, 1, 909, 1294] +[:right_analog_x_player_1, -23000, 0, 1, 910, 1294] +[:right_analog_y_player_1, -31000, 0, 1, 911, 1294] +[:key_held_player_one, 1, 0, 1, 912, 1295] +[:key_down_player_one, 3, 0, 1, 913, 1295] +[:right_analog_x_player_1, -29000, 0, 1, 914, 1295] +[:right_analog_y_player_1, -26000, 0, 1, 915, 1295] +[:key_held_player_one, 1, 0, 1, 916, 1296] +[:key_held_player_one, 3, 0, 1, 917, 1296] +[:right_analog_x_player_1, -31000, 0, 1, 918, 1296] +[:right_analog_y_player_1, -22000, 0, 1, 919, 1296] +[:key_held_player_one, 1, 0, 1, 920, 1297] +[:key_held_player_one, 3, 0, 1, 921, 1297] +[:right_analog_x_player_1, -32000, 0, 1, 922, 1297] +[:right_analog_y_player_1, -18000, 0, 1, 923, 1297] +[:key_up_player_one, 1, 0, 1, 924, 1298] +[:key_held_player_one, 3, 0, 1, 925, 1298] +[:right_analog_y_player_1, -15000, 0, 1, 926, 1298] +[:key_held_player_one, 3, 0, 1, 927, 1299] +[:right_analog_y_player_1, -12000, 0, 1, 928, 1299] +[:key_held_player_one, 3, 0, 1, 929, 1300] +[:right_analog_y_player_1, -9000, 0, 1, 930, 1300] +[:key_held_player_one, 3, 0, 1, 931, 1301] +[:right_analog_y_player_1, -5000, 0, 1, 932, 1301] +[:key_held_player_one, 3, 0, 1, 933, 1302] +[:right_analog_y_player_1, -1000, 0, 1, 934, 1302] +[:key_held_player_one, 3, 0, 1, 935, 1303] +[:right_analog_y_player_1, 0, 0, 1, 936, 1303] +[:key_held_player_one, 3, 0, 1, 937, 1304] +[:right_analog_y_player_1, 3000, 0, 1, 938, 1304] +[:key_held_player_one, 3, 0, 1, 939, 1305] +[:right_analog_y_player_1, 8000, 0, 1, 940, 1305] +[:key_held_player_one, 3, 0, 1, 941, 1306] +[:right_analog_y_player_1, 13000, 0, 1, 942, 1306] +[:key_held_player_one, 3, 0, 1, 943, 1307] +[:right_analog_y_player_1, 17000, 0, 1, 944, 1307] +[:key_held_player_one, 3, 0, 1, 945, 1308] +[:right_analog_x_player_1, -30000, 0, 1, 946, 1308] +[:right_analog_y_player_1, 20000, 0, 1, 947, 1308] +[:key_down_player_one, 2, 0, 1, 948, 1309] +[:key_held_player_one, 3, 0, 1, 949, 1309] +[:right_analog_x_player_1, -28000, 0, 1, 950, 1309] +[:right_analog_y_player_1, 23000, 0, 1, 951, 1309] +[:key_held_player_one, 2, 0, 1, 952, 1310] +[:key_held_player_one, 3, 0, 1, 953, 1310] +[:right_analog_x_player_1, -26000, 0, 1, 954, 1310] +[:right_analog_y_player_1, 26000, 0, 1, 955, 1310] +[:key_held_player_one, 2, 0, 1, 956, 1311] +[:key_held_player_one, 3, 0, 1, 957, 1311] +[:right_analog_x_player_1, -22000, 0, 1, 958, 1311] +[:right_analog_y_player_1, 29000, 0, 1, 959, 1311] +[:key_held_player_one, 2, 0, 1, 960, 1312] +[:key_held_player_one, 3, 0, 1, 961, 1312] +[:right_analog_x_player_1, -19000, 0, 1, 962, 1312] +[:right_analog_y_player_1, 31000, 0, 1, 963, 1312] +[:key_held_player_one, 2, 0, 1, 964, 1313] +[:key_up_player_one, 3, 0, 1, 965, 1313] +[:right_analog_x_player_1, -16000, 0, 1, 966, 1313] +[:right_analog_y_player_1, 32000, 0, 1, 967, 1313] +[:key_held_player_one, 2, 0, 1, 968, 1314] +[:right_analog_x_player_1, -12000, 0, 1, 969, 1314] +[:key_held_player_one, 2, 0, 1, 970, 1315] +[:right_analog_x_player_1, -10000, 0, 1, 971, 1315] +[:key_held_player_one, 2, 0, 1, 972, 1316] +[:right_analog_x_player_1, -7000, 0, 1, 973, 1316] +[:key_held_player_one, 2, 0, 1, 974, 1317] +[:right_analog_x_player_1, -2000, 0, 1, 975, 1317] +[:key_held_player_one, 2, 0, 1, 976, 1318] +[:right_analog_x_player_1, 0, 0, 1, 977, 1318] +[:key_held_player_one, 2, 0, 1, 978, 1319] +[:right_analog_x_player_1, 3000, 0, 1, 979, 1319] +[:key_held_player_one, 2, 0, 1, 980, 1320] +[:right_analog_x_player_1, 8000, 0, 1, 981, 1320] +[:key_held_player_one, 2, 0, 1, 982, 1321] +[:right_analog_x_player_1, 12000, 0, 1, 983, 1321] +[:key_held_player_one, 2, 0, 1, 984, 1322] +[:right_analog_x_player_1, 16000, 0, 1, 985, 1322] +[:key_held_player_one, 2, 0, 1, 986, 1323] +[:right_analog_x_player_1, 21000, 0, 1, 987, 1323] +[:right_analog_y_player_1, 31000, 0, 1, 988, 1323] +[:key_held_player_one, 2, 0, 1, 989, 1324] +[:key_down_player_one, 4, 0, 1, 990, 1324] +[:right_analog_x_player_1, 26000, 0, 1, 991, 1324] +[:right_analog_y_player_1, 28000, 0, 1, 992, 1324] +[:key_held_player_one, 2, 0, 1, 993, 1325] +[:key_held_player_one, 4, 0, 1, 994, 1325] +[:right_analog_x_player_1, 29000, 0, 1, 995, 1325] +[:right_analog_y_player_1, 24000, 0, 1, 996, 1325] +[:key_held_player_one, 2, 0, 1, 997, 1326] +[:key_held_player_one, 4, 0, 1, 998, 1326] +[:right_analog_x_player_1, 31000, 0, 1, 999, 1326] +[:right_analog_y_player_1, 20000, 0, 1, 1000, 1326] +[:key_held_player_one, 2, 0, 1, 1001, 1327] +[:key_held_player_one, 4, 0, 1, 1002, 1327] +[:right_analog_x_player_1, 32000, 0, 1, 1003, 1327] +[:right_analog_y_player_1, 14000, 0, 1, 1004, 1327] +[:key_up_player_one, 2, 0, 1, 1005, 1328] +[:key_held_player_one, 4, 0, 1, 1006, 1328] +[:right_analog_y_player_1, 2000, 0, 1, 1007, 1328] +[:key_held_player_one, 4, 0, 1, 1008, 1329] +[:right_analog_x_player_1, 27000, 0, 1, 1009, 1329] +[:right_analog_y_player_1, -9000, 0, 1, 1010, 1329] +[:key_held_player_one, 4, 0, 1, 1011, 1330] +[:right_analog_x_player_1, 21000, 0, 1, 1012, 1330] +[:right_analog_y_player_1, -11000, 0, 1, 1013, 1330] +[:key_held_player_one, 4, 0, 1, 1014, 1331] +[:right_analog_x_player_1, 17000, 0, 1, 1015, 1331] +[:right_analog_y_player_1, -10000, 0, 1, 1016, 1331] +[:key_up_player_one, 4, 0, 1, 1017, 1332] +[:right_analog_x_player_1, 11000, 0, 1, 1018, 1332] +[:right_analog_y_player_1, -4000, 0, 1, 1019, 1332] +[:right_analog_x_player_1, 6000, 0, 1, 1020, 1333] +[:right_analog_y_player_1, 0, 0, 1, 1021, 1333] +[:right_analog_x_player_1, 0, 0, 1, 1022, 1334] +[:right_analog_y_player_1, 1000, 0, 1, 1023, 1366] +[:right_analog_y_player_1, 0, 0, 1, 1024, 1367] +[:right_analog_y_player_1, 1000, 0, 1, 1025, 1369] +[:key_down_player_one, 21, 0, 1, 1026, 1370] +[:key_held_player_one, 21, 0, 1, 1027, 1371] +[:key_held_player_one, 21, 0, 1, 1028, 1372] +[:key_held_player_one, 21, 0, 1, 1029, 1373] +[:key_held_player_one, 21, 0, 1, 1030, 1374] +[:right_analog_x_player_1, 1000, 0, 1, 1031, 1374] +[:right_analog_y_player_1, 2000, 0, 1, 1032, 1374] +[:key_held_player_one, 21, 0, 1, 1033, 1375] +[:right_analog_y_player_1, 1000, 0, 1, 1034, 1375] +[:key_held_player_one, 21, 0, 1, 1035, 1376] +[:key_held_player_one, 21, 0, 1, 1036, 1377] +[:right_analog_y_player_1, 0, 0, 1, 1037, 1377] +[:key_held_player_one, 21, 0, 1, 1038, 1378] +[:right_analog_x_player_1, 0, 0, 1, 1039, 1378] +[:key_held_player_one, 21, 0, 1, 1040, 1379] +[:key_held_player_one, 21, 0, 1, 1041, 1380] +[:key_held_player_one, 21, 0, 1, 1042, 1381] +[:key_up_player_one, 21, 0, 1, 1043, 1382] +[:key_down_player_one, 20, 0, 1, 1044, 1411] +[:key_held_player_one, 20, 0, 1, 1045, 1412] +[:key_held_player_one, 20, 0, 1, 1046, 1413] +[:key_held_player_one, 20, 0, 1, 1047, 1414] +[:key_held_player_one, 20, 0, 1, 1048, 1415] +[:key_held_player_one, 20, 0, 1, 1049, 1416] +[:key_held_player_one, 20, 0, 1, 1050, 1417] +[:key_held_player_one, 20, 0, 1, 1051, 1418] +[:key_held_player_one, 20, 0, 1, 1052, 1419] +[:key_up_player_one, 20, 0, 1, 1053, 1420] +[:left_analog_x_player_1, -1000, 0, 1, 1054, 1422] +[:left_analog_x_player_1, 0, 0, 1, 1055, 1423] +[:key_down_raw, 1073742051, 1024, 2, 1056, 1529] +[:key_down_raw, 113, 1024, 2, 1057, 1529] +[:key_up_raw, 113, 1024, 2, 1058, 1529] |
