AGOS: Update debug tables.
This commit is contained in:
parent
41d46f07ef
commit
b53487fe38
2 changed files with 234 additions and 23 deletions
|
@ -101,7 +101,7 @@ const byte *AGOSEngine::dumpOpcode(const byte *p) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'W':{
|
case 'W':{
|
||||||
int n = (int16)READ_BE_UINT16(p);
|
uint16 n = READ_BE_UINT16(p);
|
||||||
p += 2;
|
p += 2;
|
||||||
if (getGameType() == GType_PP) {
|
if (getGameType() == GType_PP) {
|
||||||
if (n >= 60000 && n < 62048)
|
if (n >= 60000 && n < 62048)
|
||||||
|
@ -222,14 +222,18 @@ void AGOSEngine::dumpVideoScript(const byte *src, bool singeOpcode) {
|
||||||
error("dumpVideoScript: Opcode %d out of range (%d)", opcode, _numVideoOpcodes);
|
error("dumpVideoScript: Opcode %d out of range (%d)", opcode, _numVideoOpcodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getGameType() == GType_FF || getGameType() == GType_PP) {
|
if (getGameType() == GType_PP) {
|
||||||
|
strn = str = puzzlepack_videoOpcodeNameTable[opcode];
|
||||||
|
} else if (getGameType() == GType_FF) {
|
||||||
strn = str = feeblefiles_videoOpcodeNameTable[opcode];
|
strn = str = feeblefiles_videoOpcodeNameTable[opcode];
|
||||||
} else if (getGameType() == GType_SIMON2) {
|
} else if (getGameType() == GType_SIMON2) {
|
||||||
strn = str = simon2_videoOpcodeNameTable[opcode];
|
strn = str = simon2_videoOpcodeNameTable[opcode];
|
||||||
} else if (getGameType() == GType_SIMON1) {
|
} else if (getGameType() == GType_SIMON1) {
|
||||||
strn = str = simon1_videoOpcodeNameTable[opcode];
|
strn = str = simon1_videoOpcodeNameTable[opcode];
|
||||||
} else if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
|
} else if (getGameType() == GType_WW) {
|
||||||
strn = str = ww_videoOpcodeNameTable[opcode];
|
strn = str = ww_videoOpcodeNameTable[opcode];
|
||||||
|
} else if (getGameType() == GType_ELVIRA2) {
|
||||||
|
strn = str = elvira2_videoOpcodeNameTable[opcode];
|
||||||
} else if (getGameType() == GType_ELVIRA1) {
|
} else if (getGameType() == GType_ELVIRA1) {
|
||||||
strn = str = elvira1_videoOpcodeNameTable[opcode];
|
strn = str = elvira1_videoOpcodeNameTable[opcode];
|
||||||
} else {
|
} else {
|
||||||
|
@ -250,25 +254,39 @@ void AGOSEngine::dumpVideoScript(const byte *src, bool singeOpcode) {
|
||||||
case 'x':
|
case 'x':
|
||||||
debugN("\n");
|
debugN("\n");
|
||||||
return;
|
return;
|
||||||
case 'b':
|
case 'b': {
|
||||||
debugN("%d ", *src++);
|
debugN("%d ", *src++);
|
||||||
break;
|
break;
|
||||||
case 'd':
|
}
|
||||||
|
case 'w': {
|
||||||
|
int16 v = (int16)readUint16Wrapper(src);
|
||||||
|
src += 2;
|
||||||
|
if (v < 0)
|
||||||
|
debugN("[%d] ", -v);
|
||||||
|
else
|
||||||
|
debugN("%d ", v);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'd': {
|
||||||
debugN("%d ", (int16)readUint16Wrapper(src));
|
debugN("%d ", (int16)readUint16Wrapper(src));
|
||||||
src += 2;
|
src += 2;
|
||||||
break;
|
break;
|
||||||
case 'v':
|
}
|
||||||
|
case 'v': {
|
||||||
debugN("[%d] ", readUint16Wrapper(src));
|
debugN("[%d] ", readUint16Wrapper(src));
|
||||||
src += 2;
|
src += 2;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
}
|
||||||
|
case 'i': {
|
||||||
debugN("%d ", (int16)readUint16Wrapper(src));
|
debugN("%d ", (int16)readUint16Wrapper(src));
|
||||||
src += 2;
|
src += 2;
|
||||||
break;
|
break;
|
||||||
case 'j':
|
}
|
||||||
|
case 'j': {
|
||||||
debugN("-> ");
|
debugN("-> ");
|
||||||
break;
|
break;
|
||||||
case 'q':
|
}
|
||||||
|
case 'q': {
|
||||||
while (readUint16Wrapper(src) != end) {
|
while (readUint16Wrapper(src) != end) {
|
||||||
debugN("(%d,%d) ", readUint16Wrapper(src),
|
debugN("(%d,%d) ", readUint16Wrapper(src),
|
||||||
readUint16Wrapper(src + 2));
|
readUint16Wrapper(src + 2));
|
||||||
|
@ -276,6 +294,7 @@ void AGOSEngine::dumpVideoScript(const byte *src, bool singeOpcode) {
|
||||||
}
|
}
|
||||||
src += 2;
|
src += 2;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
error("dumpVideoScript: Invalid fmt string '%c' in decompile VGA", *str);
|
error("dumpVideoScript: Invalid fmt string '%c' in decompile VGA", *str);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2468,7 +2468,7 @@ const char *const elvira1_videoOpcodeNameTable[] = {
|
||||||
"dd|DELAY_IF_NOT_EQ",
|
"dd|DELAY_IF_NOT_EQ",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *const ww_videoOpcodeNameTable[] = {
|
const char *const elvira2_videoOpcodeNameTable[] = {
|
||||||
/* 0 */
|
/* 0 */
|
||||||
"x|RET",
|
"x|RET",
|
||||||
"ddd|FADEOUT",
|
"ddd|FADEOUT",
|
||||||
|
@ -2485,7 +2485,7 @@ const char *const ww_videoOpcodeNameTable[] = {
|
||||||
"dddd|DRAW",
|
"dddd|DRAW",
|
||||||
"d|ON_STOP",
|
"d|ON_STOP",
|
||||||
/* 12 */
|
/* 12 */
|
||||||
"d|DELAY",
|
"w|DELAY",
|
||||||
"d|SET_SPRITE_OFFSET_X",
|
"d|SET_SPRITE_OFFSET_X",
|
||||||
"d|SET_SPRITE_OFFSET_Y",
|
"d|SET_SPRITE_OFFSET_Y",
|
||||||
"d|SYNC",
|
"d|SYNC",
|
||||||
|
@ -2551,11 +2551,94 @@ const char *const ww_videoOpcodeNameTable[] = {
|
||||||
"|FASTFADEIN",
|
"|FASTFADEIN",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *const ww_videoOpcodeNameTable[] = {
|
||||||
|
/* 0 */
|
||||||
|
"x|RET",
|
||||||
|
"ddd|FADEOUT",
|
||||||
|
"w|CALL",
|
||||||
|
"ddddd|NEW_SPRITE",
|
||||||
|
/* 4 */
|
||||||
|
"ddd|FADEIN",
|
||||||
|
"vdj|IF_EQUAL",
|
||||||
|
"dj|IF_OBJECT_HERE",
|
||||||
|
"dj|IF_OBJECT_NOT_HERE",
|
||||||
|
/* 8 */
|
||||||
|
"ddj|IF_OBJECT_IS_AT",
|
||||||
|
"ddj|IF_OBJECT_STATE_IS",
|
||||||
|
"dddd|DRAW",
|
||||||
|
"d|ON_STOP",
|
||||||
|
/* 12 */
|
||||||
|
"w|DELAY",
|
||||||
|
"d|SET_SPRITE_OFFSET_X",
|
||||||
|
"d|SET_SPRITE_OFFSET_Y",
|
||||||
|
"d|SYNC",
|
||||||
|
/* 16 */
|
||||||
|
"d|WAIT_SYNC",
|
||||||
|
"d|WAIT_END",
|
||||||
|
"i|JUMP_REL",
|
||||||
|
"|CHAIN_TO",
|
||||||
|
/* 20 */
|
||||||
|
"dd|SET_REPEAT",
|
||||||
|
"i|END_REPEAT",
|
||||||
|
"d|SET_PALETTE",
|
||||||
|
"d|SET_PRIORITY",
|
||||||
|
/* 24 */
|
||||||
|
"wiid|SET_SPRITE_XY",
|
||||||
|
"x|HALT_SPRITE",
|
||||||
|
"ddddd|SET_WINDOW",
|
||||||
|
"|RESET",
|
||||||
|
/* 28 */
|
||||||
|
"dddd|PLAY_SOUND",
|
||||||
|
"|STOP_ALL_SOUNDS",
|
||||||
|
"d|SET_FRAME_RATE",
|
||||||
|
"d|SET_WINDOW",
|
||||||
|
/* 32 */
|
||||||
|
"|SAVE_SCREEN",
|
||||||
|
"|MOUSE_ON",
|
||||||
|
"|MOUSE_OFF",
|
||||||
|
"dd|CLEAR_WINDOW",
|
||||||
|
/* 36 */
|
||||||
|
"dd|SET_WINDOW_IMAGE",
|
||||||
|
"dd|POKE_PALETTE",
|
||||||
|
"vj|IF_VAR_NOT_ZERO",
|
||||||
|
"vd|SET_VAR",
|
||||||
|
/* 40 */
|
||||||
|
"vd|ADD_VAR",
|
||||||
|
"vd|SUB_VAR",
|
||||||
|
"vd|DELAY_IF_NOT_EQ",
|
||||||
|
"dj|IF_BIT_SET",
|
||||||
|
/* 44 */
|
||||||
|
"dj|IF_BIT_CLEAR",
|
||||||
|
"dd|SET_WINDOW_PALETTE",
|
||||||
|
"d|SET_PALETTE_SLOT1",
|
||||||
|
"d|SET_PALETTE_SLOT2",
|
||||||
|
/* 48 */
|
||||||
|
"d|SET_PALETTE_SLOT3",
|
||||||
|
"d|SET_BIT",
|
||||||
|
"d|CLEAR_BIT",
|
||||||
|
"d|ENABLE_BOX",
|
||||||
|
/* 52 */
|
||||||
|
"d|PLAY_EFFECT",
|
||||||
|
"dd|DISSOLVE_IN",
|
||||||
|
"ddd|DISSOLVE_OUT",
|
||||||
|
"ddd|MOVE_BOX",
|
||||||
|
/* 56 */
|
||||||
|
"|FULL_SCREEN",
|
||||||
|
"|BLACK_PALETTE",
|
||||||
|
"|CHECK_CODE_WHEEL",
|
||||||
|
"j|IF_EGA",
|
||||||
|
/* 60 */
|
||||||
|
"d|STOP_ANIMATE",
|
||||||
|
"d|INTRO",
|
||||||
|
"|FASTFADEOUT",
|
||||||
|
"|FASTFADEIN",
|
||||||
|
};
|
||||||
|
|
||||||
const char *const simon1_videoOpcodeNameTable[] = {
|
const char *const simon1_videoOpcodeNameTable[] = {
|
||||||
/* 0 */
|
/* 0 */
|
||||||
"x|RET",
|
"x|RET",
|
||||||
"ddd|FADEOUT",
|
"ddd|FADEOUT",
|
||||||
"d|CALL",
|
"w|CALL",
|
||||||
"ddddd|NEW_SPRITE",
|
"ddddd|NEW_SPRITE",
|
||||||
/* 4 */
|
/* 4 */
|
||||||
"ddd|FADEIN",
|
"ddd|FADEIN",
|
||||||
|
@ -2568,7 +2651,7 @@ const char *const simon1_videoOpcodeNameTable[] = {
|
||||||
"ddddd|DRAW",
|
"ddddd|DRAW",
|
||||||
"|CLEAR_PATHFIND_ARRAY",
|
"|CLEAR_PATHFIND_ARRAY",
|
||||||
/* 12 */
|
/* 12 */
|
||||||
"d|DELAY",
|
"w|DELAY",
|
||||||
"d|SET_SPRITE_OFFSET_X",
|
"d|SET_SPRITE_OFFSET_X",
|
||||||
"d|SET_SPRITE_OFFSET_Y",
|
"d|SET_SPRITE_OFFSET_Y",
|
||||||
"d|SYNC",
|
"d|SYNC",
|
||||||
|
@ -2583,7 +2666,7 @@ const char *const simon1_videoOpcodeNameTable[] = {
|
||||||
"dd|SET_PALETTE",
|
"dd|SET_PALETTE",
|
||||||
"d|SET_PRIORITY",
|
"d|SET_PRIORITY",
|
||||||
/* 24 */
|
/* 24 */
|
||||||
"diid|SET_SPRITE_XY",
|
"wiid|SET_SPRITE_XY",
|
||||||
"x|HALT_SPRITE",
|
"x|HALT_SPRITE",
|
||||||
"ddddd|SET_WINDOW",
|
"ddddd|SET_WINDOW",
|
||||||
"|RESET",
|
"|RESET",
|
||||||
|
@ -2629,7 +2712,7 @@ const char *const simon1_videoOpcodeNameTable[] = {
|
||||||
"j|IF_SPEECH",
|
"j|IF_SPEECH",
|
||||||
/* 60 */
|
/* 60 */
|
||||||
"d|STOP_ANIMATE",
|
"d|STOP_ANIMATE",
|
||||||
"ddd|MASK",
|
"wdd|MASK",
|
||||||
"|FASTFADEOUT",
|
"|FASTFADEOUT",
|
||||||
"|FASTFADEIN",
|
"|FASTFADEIN",
|
||||||
};
|
};
|
||||||
|
@ -2638,7 +2721,7 @@ const char *const simon2_videoOpcodeNameTable[] = {
|
||||||
/* 0 */
|
/* 0 */
|
||||||
"x|RET",
|
"x|RET",
|
||||||
"ddd|FADEOUT",
|
"ddd|FADEOUT",
|
||||||
"d|CALL",
|
"w|CALL",
|
||||||
"dddddd|NEW_SPRITE",
|
"dddddd|NEW_SPRITE",
|
||||||
/* 4 */
|
/* 4 */
|
||||||
"ddd|FADEIN",
|
"ddd|FADEIN",
|
||||||
|
@ -2666,7 +2749,7 @@ const char *const simon2_videoOpcodeNameTable[] = {
|
||||||
"dd|SET_PALETTE",
|
"dd|SET_PALETTE",
|
||||||
"d|SET_PRIORITY",
|
"d|SET_PRIORITY",
|
||||||
/* 24 */
|
/* 24 */
|
||||||
"diib|SET_SPRITE_XY",
|
"wiib|SET_SPRITE_XY",
|
||||||
"x|HALT_SPRITE",
|
"x|HALT_SPRITE",
|
||||||
"ddddd|SET_WINDOW",
|
"ddddd|SET_WINDOW",
|
||||||
"|RESET",
|
"|RESET",
|
||||||
|
@ -2706,13 +2789,13 @@ const char *const simon2_videoOpcodeNameTable[] = {
|
||||||
"ddd|DUMMY_54",
|
"ddd|DUMMY_54",
|
||||||
"ddd|MOVE_BOX",
|
"ddd|MOVE_BOX",
|
||||||
/* 56 */
|
/* 56 */
|
||||||
"i|WAIT_BIG",
|
"w|WAIT_BIG",
|
||||||
"|BLACK_PALETTE",
|
"|BLACK_PALETTE",
|
||||||
"ddd|SET_PRIORITIES",
|
"ddd|SET_PRIORITIES",
|
||||||
"ddd|STOP_ANIMATIONS",
|
"ddd|STOP_ANIMATIONS",
|
||||||
/* 60 */
|
/* 60 */
|
||||||
"dd|STOP_ANIMATE",
|
"dd|STOP_ANIMATE",
|
||||||
"ddd|MASK",
|
"wdd|MASK",
|
||||||
"|FASTFADEOUT",
|
"|FASTFADEOUT",
|
||||||
"|FASTFADEIN",
|
"|FASTFADEIN",
|
||||||
/* 64 */
|
/* 64 */
|
||||||
|
@ -2735,7 +2818,7 @@ const char *const feeblefiles_videoOpcodeNameTable[] = {
|
||||||
/* 0 */
|
/* 0 */
|
||||||
"x|RET",
|
"x|RET",
|
||||||
"ddd|FADEOUT",
|
"ddd|FADEOUT",
|
||||||
"d|CALL",
|
"w|CALL",
|
||||||
"dddddd|NEW_SPRITE",
|
"dddddd|NEW_SPRITE",
|
||||||
/* 4 */
|
/* 4 */
|
||||||
"ddd|FADEIN",
|
"ddd|FADEIN",
|
||||||
|
@ -2763,7 +2846,7 @@ const char *const feeblefiles_videoOpcodeNameTable[] = {
|
||||||
"dd|SET_PALETTE",
|
"dd|SET_PALETTE",
|
||||||
"d|SET_PRIORITY",
|
"d|SET_PRIORITY",
|
||||||
/* 24 */
|
/* 24 */
|
||||||
"diib|SET_SPRITE_XY",
|
"wiib|SET_SPRITE_XY",
|
||||||
"x|HALT_SPRITE",
|
"x|HALT_SPRITE",
|
||||||
"ddddd|SET_WINDOW",
|
"ddddd|SET_WINDOW",
|
||||||
"|RESET",
|
"|RESET",
|
||||||
|
@ -2803,7 +2886,116 @@ const char *const feeblefiles_videoOpcodeNameTable[] = {
|
||||||
"ddd|DUMMY_54",
|
"ddd|DUMMY_54",
|
||||||
"ddd|MOVE_BOX",
|
"ddd|MOVE_BOX",
|
||||||
/* 56 */
|
/* 56 */
|
||||||
"i|WAIT_BIG",
|
"w|WAIT_BIG",
|
||||||
|
"|BLACK_PALETTE",
|
||||||
|
"ddd|SET_PRIORITIES",
|
||||||
|
"ddd|STOP_ANIMATIONS",
|
||||||
|
/* 60 */
|
||||||
|
"dd|STOP_ANIMATE",
|
||||||
|
"wdd|MASK",
|
||||||
|
"|FASTFADEOUT",
|
||||||
|
"|FASTFADEIN",
|
||||||
|
/* 64 */
|
||||||
|
"j|IF_SPEECH",
|
||||||
|
"|SLOW_FADE_IN",
|
||||||
|
"ddj|IF_VAR_EQUAL",
|
||||||
|
"ddj|IF_VAR_LE",
|
||||||
|
/* 68 */
|
||||||
|
"ddj|IF_VAR_GE",
|
||||||
|
"dd|PLAY_SEQ",
|
||||||
|
"dd|JOIN_SEQ",
|
||||||
|
"|IF_SEQ_WAITING",
|
||||||
|
/* 72 */
|
||||||
|
"dd|SEQUE",
|
||||||
|
"bb|SET_MARK",
|
||||||
|
"bb|CLEAR_MARK",
|
||||||
|
"dd|SETSCALE",
|
||||||
|
/* 76 */
|
||||||
|
"ddd|SETSCALEXOFFS",
|
||||||
|
"ddd|SETSCALEYOFFS",
|
||||||
|
"|COMPUTEXY",
|
||||||
|
"|COMPUTEPOSNUM",
|
||||||
|
/* 80 */
|
||||||
|
"wdd|SETOVERLAYIMAGE",
|
||||||
|
"dd|SETRANDOM",
|
||||||
|
"d|GETPATHVALUE",
|
||||||
|
"ddd|PLAYSOUNDLOOP",
|
||||||
|
"|STOPSOUNDLOOP",
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *const puzzlepack_videoOpcodeNameTable[] = {
|
||||||
|
/* 0 */
|
||||||
|
"x|RET",
|
||||||
|
"ddd|FADEOUT",
|
||||||
|
"w|CALL",
|
||||||
|
"dddddd|NEW_SPRITE",
|
||||||
|
/* 4 */
|
||||||
|
"ddd|FADEIN",
|
||||||
|
"wdj|IF_EQUAL",
|
||||||
|
"dj|IF_OBJECT_HERE",
|
||||||
|
"dj|IF_OBJECT_NOT_HERE",
|
||||||
|
/* 8 */
|
||||||
|
"ddj|IF_OBJECT_IS_AT",
|
||||||
|
"ddj|IF_OBJECT_STATE_IS",
|
||||||
|
"ddddb|DRAW",
|
||||||
|
"|CLEAR_PATHFIND_ARRAY",
|
||||||
|
/* 12 */
|
||||||
|
"b|DELAY",
|
||||||
|
"d|SET_SPRITE_OFFSET_X",
|
||||||
|
"d|SET_SPRITE_OFFSET_Y",
|
||||||
|
"d|SYNC",
|
||||||
|
/* 16 */
|
||||||
|
"d|WAIT_SYNC",
|
||||||
|
"dq|SET_PATHFIND_ITEM",
|
||||||
|
"i|JUMP_REL",
|
||||||
|
"|CHAIN_TO",
|
||||||
|
/* 20 */
|
||||||
|
"dd|SET_REPEAT",
|
||||||
|
"i|END_REPEAT",
|
||||||
|
"dd|SET_PALETTE",
|
||||||
|
"d|SET_PRIORITY",
|
||||||
|
/* 24 */
|
||||||
|
"wiib|SET_SPRITE_XY",
|
||||||
|
"x|HALT_SPRITE",
|
||||||
|
"ddddd|SET_WINDOW",
|
||||||
|
"|RESET",
|
||||||
|
/* 28 */
|
||||||
|
"dddd|PLAY_SOUND",
|
||||||
|
"|STOP_ALL_SOUNDS",
|
||||||
|
"d|SET_FRAME_RATE",
|
||||||
|
"d|SET_WINDOW",
|
||||||
|
/* 32 */
|
||||||
|
"vv|COPY_VAR",
|
||||||
|
"|MOUSE_ON",
|
||||||
|
"|MOUSE_OFF",
|
||||||
|
"dd|CLEAR_WINDOW",
|
||||||
|
/* 36 */
|
||||||
|
"dd|SET_WINDOW_IMAGE",
|
||||||
|
"v|SET_SPRITE_OFFSET_Y",
|
||||||
|
"wj|IF_VAR_NOT_ZERO",
|
||||||
|
"wd|SET_VAR",
|
||||||
|
/* 40 */
|
||||||
|
"vd|ADD_VAR",
|
||||||
|
"vd|SUB_VAR",
|
||||||
|
"vd|DELAY_IF_NOT_EQ",
|
||||||
|
"dj|IF_BIT_SET",
|
||||||
|
/* 44 */
|
||||||
|
"dj|IF_BIT_CLEAR",
|
||||||
|
"v|SET_SPRITE_X",
|
||||||
|
"v|SET_SPRITE_Y",
|
||||||
|
"vv|ADD_VAR_F",
|
||||||
|
/* 48 */
|
||||||
|
"|COMPUTE_YOFS",
|
||||||
|
"d|SET_BIT",
|
||||||
|
"d|CLEAR_BIT",
|
||||||
|
"d|ENABLE_BOX",
|
||||||
|
/* 52 */
|
||||||
|
"ddd|PLAY_EFFECT",
|
||||||
|
"ddd|PAN_SFX",
|
||||||
|
"ddd|DUMMY_54",
|
||||||
|
"ddd|MOVE_BOX",
|
||||||
|
/* 56 */
|
||||||
|
"w|WAIT_BIG",
|
||||||
"|BLACK_PALETTE",
|
"|BLACK_PALETTE",
|
||||||
"ddd|SET_PRIORITIES",
|
"ddd|SET_PRIORITIES",
|
||||||
"ddd|STOP_ANIMATIONS",
|
"ddd|STOP_ANIMATIONS",
|
||||||
|
@ -2833,7 +3025,7 @@ const char *const feeblefiles_videoOpcodeNameTable[] = {
|
||||||
"|COMPUTEXY",
|
"|COMPUTEXY",
|
||||||
"|COMPUTEPOSNUM",
|
"|COMPUTEPOSNUM",
|
||||||
/* 80 */
|
/* 80 */
|
||||||
"ddd|SETOVERLAYIMAGE",
|
"wdd|SETOVERLAYIMAGE",
|
||||||
"dd|SETRANDOM",
|
"dd|SETRANDOM",
|
||||||
"d|GETPATHVALUE",
|
"d|GETPATHVALUE",
|
||||||
"ddd|PLAYSOUNDLOOP",
|
"ddd|PLAYSOUNDLOOP",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue