Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define @{%0:%1:%2} GetArrayIndexByKey(_:%0,_:%1,%2, sizeof %0)
- stock GetArrayIndexByKey(...) {
- if(4 != numargs()) return -1;
- new tmp, arrayAddr, compare = getarg(2, 0), offset = getarg(1, 0) * 4;
- #emit CONST.alt 12
- #emit LCTRL 5
- #emit ADD
- #emit LOAD.I
- #emit STOR.S.pri arrayAddr
- for(new i = 0; i != getarg(3, 0) * 4; i += 4) {
- #emit LOAD.S.pri arrayAddr
- #emit LOAD.S.alt i
- #emit ADD
- #emit MOVE.alt
- #emit LOAD.I
- #emit ADD
- #emit LOAD.S.alt offset
- #emit ADD
- #emit LOAD.I
- #emit STOR.S.pri tmp
- if(compare == tmp) return i / 4;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment