- Joined
- Nov 7, 2014
- Messages
- 571
This mission can kind of be done without loops and if statements (i.e jump bytecode instructions, which I don't know how to use... =)), i.e it can be written with bytecode (there's a bunch of other libraries required to execute the bytecode though):
The above should work... although its kind of hard to tell =)
JASS:
library Wanderer initializer bc_execute requires BytecodeBoilerplate
globals
private integer array bc
private integer bc_offset
private integer bc_addr = 0
endglobals
private function X takes nothing returns integer
set bc_offset = bc_offset + 1
return bc_offset
endfunction
private function stid takes string s returns integer
return stid_from_handle(s)
endfunction
private function call_bc takes integer bc_addr_offset returns nothing
local trigger t
if bc_addr == 0 then
set bc_addr = Memory[get_array_struct_from_name(SCOPE_PRIVATE + "bc")/4 + 3]
endif
call ForForce(bj_FORCE_PLAYER[0], I2C(bc_addr + bc_addr_offset))
endfunction
private function bc_execute takes nothing returns nothing
local integer bc_addr_stid = stid(SCOPE_PRIVATE + "bc_addr")
local integer I2C_stid = stid("I2C")
set bc_offset = -1
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000538
set bc[X()] = 0x13000000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x68677279
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x43870000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000415
set bc[X()] = 0x0DFF0000
set bc[X()] = 0x00000000
set bc[X()] = 0x13FF0000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x000004A9
set bc[X()] = 0x0DFE0000
set bc[X()] = 0x00000000
set bc[X()] = 0x0CFD0500
set bc[X()] = 0x00000000
set bc[X()] = 0x0CFC0500
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x40C90FDA
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x0DFB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x43FA0000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x44BB8000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x0D020000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x3F800000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x13000000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x0000024F
set bc[X()] = 0x22FA0200
set bc[X()] = 0x00000000
set bc[X()] = 0x13FB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000247
set bc[X()] = 0x22F9FA00
set bc[X()] = 0x00000000
set bc[X()] = 0x13FB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000246
set bc[X()] = 0x22F8FA00
set bc[X()] = 0x00000000
set bc[X()] = 0x13FF0000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x000D0012
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000507
set bc[X()] = 0x21F7FDF9
set bc[X()] = 0x00000000
set bc[X()] = 0x21F6FCF8
set bc[X()] = 0x00000000
set bc[X()] = 0x2201F7F7
set bc[X()] = 0x00000000
set bc[X()] = 0x2202F6F6
set bc[X()] = 0x00000000
set bc[X()] = 0x20030102
set bc[X()] = 0x00000000
set bc[X()] = 0x13030000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x0000024F
set bc[X()] = 0x0DF50000
set bc[X()] = 0x00000000
set bc[X()] = 0x0DFDF900
set bc[X()] = 0x00000000
set bc[X()] = 0x0DFCF800
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000820
set bc[X()] = 0x0DF40000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000821
set bc[X()] = 0x0DF30000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x4E736E77
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000001
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000822
set bc[X()] = 0x15000000
set bc[X()] = 0x000002BA
set bc[X()] = 0x0DF20000
set bc[X()] = 0x00000000
set bc[X()] = 0x0E010400
set bc[X()] = bc_addr_stid
set bc[X()] = 0x0C020400
set bc[X()] = 0x00000008
set bc[X()] = 0x0C030400
set bc[X()] = 0x0000006A
set bc[X()] = 0x22040203
set bc[X()] = 0x00000000
set bc[X()] = 0x20010104
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x16000000
set bc[X()] = I2C_stid
set bc[X()] = 0x0B010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0DF10000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F20000
set bc[X()] = 0x00000000
set bc[X()] = 0x2301F5FE
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010800
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F10000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x000002BD
set bc[X()] = 0x1210FF00
set bc[X()] = 0x000009D4
set bc[X()] = 0x11FE0000
set bc[X()] = 0x000009EA
set bc[X()] = 0x11FD0000
set bc[X()] = 0x000009EB
set bc[X()] = 0x11FC0000
set bc[X()] = 0x000009EC
set bc[X()] = 0x11F40000
set bc[X()] = 0x000009F8
set bc[X()] = 0x11F30000
set bc[X()] = 0x000009F9
set bc[X()] = 0x11F20000
set bc[X()] = 0x000009DF
set bc[X()] = 0x27000000
set bc[X()] = 0x00000000
set bc[X()] = 0x10FF1007
set bc[X()] = 0x000009D4
set bc[X()] = 0x0EFE0500
set bc[X()] = 0x000009EA
set bc[X()] = 0x0EFD0500
set bc[X()] = 0x000009EB
set bc[X()] = 0x0EFC0500
set bc[X()] = 0x000009EC
set bc[X()] = 0x0EF40400
set bc[X()] = 0x000009F8
set bc[X()] = 0x0EF30400
set bc[X()] = 0x000009F9
set bc[X()] = 0x0EF20700
set bc[X()] = 0x000009DF
set bc[X()] = 0x13FD0000
set bc[X()] = 0x00000000
set bc[X()] = 0x13FC0000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F40000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F30000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000001
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000822
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x40C90FDA
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x0DFB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x43FA0000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x44BB8000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x0D020000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010500
set bc[X()] = 0x3F800000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000661
set bc[X()] = 0x13000000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x0000024F
set bc[X()] = 0x22FA0200
set bc[X()] = 0x00000000
set bc[X()] = 0x13FB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000247
set bc[X()] = 0x22F9FA00
set bc[X()] = 0x00000000
set bc[X()] = 0x13FB0000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000246
set bc[X()] = 0x22F8FA00
set bc[X()] = 0x00000000
set bc[X()] = 0x13FF0000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x000D0012
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000507
set bc[X()] = 0x21F7FDF9
set bc[X()] = 0x00000000
set bc[X()] = 0x21F6FCF8
set bc[X()] = 0x00000000
set bc[X()] = 0x2201F7F7
set bc[X()] = 0x00000000
set bc[X()] = 0x2202F6F6
set bc[X()] = 0x00000000
set bc[X()] = 0x20030102
set bc[X()] = 0x00000000
set bc[X()] = 0x13030000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x0000024F
set bc[X()] = 0x0DF50000
set bc[X()] = 0x00000000
set bc[X()] = 0x0DFDF900
set bc[X()] = 0x00000000
set bc[X()] = 0x0DFCF800
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000820
set bc[X()] = 0x0DF40000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000821
set bc[X()] = 0x0DF30000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F90000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F80000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x4E736E77
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000001
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010400
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x00000822
set bc[X()] = 0x11FD0000
set bc[X()] = 0x000009EB
set bc[X()] = 0x11FC0000
set bc[X()] = 0x000009EC
set bc[X()] = 0x11F40000
set bc[X()] = 0x000009F8
set bc[X()] = 0x11F30000
set bc[X()] = 0x000009F9
set bc[X()] = 0x0E010400
set bc[X()] = bc_addr_stid
set bc[X()] = 0x0C020400
set bc[X()] = 0x00000008
set bc[X()] = 0x0C030400
set bc[X()] = 0x0000006A
set bc[X()] = 0x22040203
set bc[X()] = 0x00000000
set bc[X()] = 0x20010104
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x16000000
set bc[X()] = I2C_stid
set bc[X()] = 0x0B010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0DF10000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F20000
set bc[X()] = 0x00000000
set bc[X()] = 0x2301F5FE
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x0C010800
set bc[X()] = 0x00000000
set bc[X()] = 0x13010000
set bc[X()] = 0x00000000
set bc[X()] = 0x13F10000
set bc[X()] = 0x00000000
set bc[X()] = 0x15000000
set bc[X()] = 0x000002BD
set bc[X()] = 0x27000000
set bc[X()] = 0x00000000
call call_bc(0)
endfunction
endlibrary
The above should work... although its kind of hard to tell =)