• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Wanderer - Submission [EXPERIMENTAL]

Status
Not open for further replies.
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):

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 =)
 

Attachments

  • bytecode-boilerplate.j
    10.3 KB · Views: 40
Status
Not open for further replies.
Top