• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Wanderer - Submission [EXPERIMENTAL]

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

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: 36
Level 22
Joined
Feb 6, 2014
Messages
2,466
The point of JASS Class is to serve as an exercise for JASS newbies to enhance their skill not to tell people you can make stuffs in unreadable bytecode. While bytecode may offer a wider possibilities than native JASS, its syntax is so bad, it's like writing in some sort of language between machine code and assembly code.
 
Status
Not open for further replies.
Top