void qspCallSleep(int msecs) { /* «десь ожидаем заданное количество миллисекунд */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_SLEEP].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array("IntType", msecs); AS3_Call(qspCallBacks[QSP_CALL_SLEEP].FuncVal, qspCallBacks[QSP_CALL_SLEEP].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallDeleteMenu() { /* «десь удал¤ем текущее меню */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_DELETEMENU].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array(""); AS3_Call(qspCallBacks[QSP_CALL_DELETEMENU].FuncVal, qspCallBacks[QSP_CALL_DELETEMENU].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallShowWindow(int type, QSP_BOOL isShow) { /* «десь показываем или скрываем окно */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_SHOWWINDOW].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array("IntType, IntType", type, isShow); AS3_Call(qspCallBacks[QSP_CALL_SHOWWINDOW].FuncVal, qspCallBacks[QSP_CALL_SHOWWINDOW].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallShowMenu() { /* «десь показываем меню */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_SHOWMENU].IsSet) { qspSaveCallState(&state, QSP_FALSE, QSP_TRUE); args = AS3_Array(""); AS3_Call(qspCallBacks[QSP_CALL_SHOWMENU].FuncVal, qspCallBacks[QSP_CALL_SHOWMENU].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallRefreshInt(QSP_BOOL isRedraw) { /* «десь выполн¤ем обновление интерфейса */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_REFRESHINT].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array("IntType", isRedraw); AS3_Call(qspCallBacks[QSP_CALL_REFRESHINT].FuncVal, qspCallBacks[QSP_CALL_REFRESHINT].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallSetTimer(int msecs) { /* «десь устанавливаем интервал таймера */ QSPCallState state; AS3_Val args; if (qspCallBacks[QSP_CALL_SETTIMER].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array("IntType", msecs); AS3_Call(qspCallBacks[QSP_CALL_SETTIMER].FuncVal, qspCallBacks[QSP_CALL_SETTIMER].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
QSP_CHAR *qspCallPlayerInfo(QSP_CHAR *text) { /* «десь получаем строку по заданному параметру */ QSPCallState state; QSP_CHAR *buffer; int maxLen = 511; if (qspCallBacks[QSP_CALL_PLAYERINFO]) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); buffer = (QSP_CHAR *)malloc((maxLen + 1) * sizeof(QSP_CHAR)); *buffer = 0; qspCallBacks[QSP_CALL_PLAYERINFO](text, buffer, maxLen); buffer[maxLen] = 0; qspRestoreCallState(&state); } else buffer = qspGetNewText(QSP_FMT(""), 0); return buffer; }
QSP_CHAR *qspCallInputBox(QSP_CHAR *text) { /* «десь вводим текст */ QSPCallState state; QSP_CHAR *buffer; int maxLen = 511; if (qspCallBacks[QSP_CALL_INPUTBOX]) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); buffer = (QSP_CHAR *)malloc((maxLen + 1) * sizeof(QSP_CHAR)); *buffer = 0; qspCallBacks[QSP_CALL_INPUTBOX](text, buffer, maxLen); buffer[maxLen] = 0; qspRestoreCallState(&state); } else buffer = qspGetNewText(QSP_FMT(""), 0); return buffer; }
int qspCallShowMenu() { /* «десь показываем меню */ QSPCallState state; int index; AS3_Val args; if (qspCallBacks[QSP_CALL_SHOWMENU].IsSet) { qspSaveCallState(&state, QSP_FALSE, QSP_TRUE); args = AS3_Array(""); AS3_Call(qspCallBacks[QSP_CALL_SHOWMENU].FuncVal, qspCallBacks[QSP_CALL_SHOWMENU].ThisVal, args); AS3_Release(args); flyield(); index = AS3_IntValue(result); AS3_Release(result); qspRestoreCallState(&state); return index; } return -1; }
int qspCallGetMSCount() { /* Здесь получаем количество миллисекунд, прошедших с момента последнего вызова функции */ QSPCallState state; int count; AS3_Val args; if (qspCallBacks[QSP_CALL_GETMSCOUNT].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); args = AS3_Array(""); AS3_Call(qspCallBacks[QSP_CALL_GETMSCOUNT].FuncVal, qspCallBacks[QSP_CALL_GETMSCOUNT].ThisVal, args); AS3_Release(args); flyield(); count = AS3_IntValue(result); AS3_Release(result); qspRestoreCallState(&state); return count; } return 0; }
void qspCallAddMenuItem(QSP_CHAR *name, QSP_CHAR *imgPath) { /* Здесь добавляем пункт меню */ QSPCallState state; AS3_Val args; char *nameUTF8; char *imgUTF8; if (qspCallBacks[QSP_CALL_ADDMENUITEM].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); nameUTF8 = (name ? qspW2C(name) : 0); imgUTF8 = (imgPath ? qspW2C(imgPath) : 0); args = AS3_Array("StrType, StrType", nameUTF8, imgUTF8); if (nameUTF8) free(nameUTF8); if (imgUTF8) free(imgUTF8); AS3_Call(qspCallBacks[QSP_CALL_ADDMENUITEM].FuncVal, qspCallBacks[QSP_CALL_ADDMENUITEM].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallSetInputStrText(QSP_CHAR *text) { /* Здесь устанавливаем текст строки ввода */ QSPCallState state; AS3_Val args; char *textUTF8; if (qspCallBacks[QSP_CALL_SETINPUTSTRTEXT].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); if (text) { textUTF8 = qspW2C(text); args = AS3_Array("StrType", textUTF8); free(textUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_SETINPUTSTRTEXT].FuncVal, qspCallBacks[QSP_CALL_SETINPUTSTRTEXT].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallCloseFile(QSP_CHAR *file) { /* Здесь выполняем закрытие файла */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_CLOSEFILE].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); if (file) { strUTF8 = qspW2C(file); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_CLOSEFILE].FuncVal, qspCallBacks[QSP_CALL_CLOSEFILE].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallPlayFile(QSP_CHAR *file, int volume) { /* Здесь начинаем воспроизведение файла с заданной громкостью */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_PLAYFILE].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); if (file) { strUTF8 = qspW2C(file); args = AS3_Array("StrType, IntType", strUTF8, volume); free(strUTF8); } else args = AS3_Array("StrType, IntType", 0, volume); AS3_Call(qspCallBacks[QSP_CALL_PLAYFILE].FuncVal, qspCallBacks[QSP_CALL_PLAYFILE].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallShowPicture(QSP_CHAR *file) { /* Здесь показываем изображение */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_SHOWIMAGE].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); if (file) { strUTF8 = qspW2C(file); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_SHOWIMAGE].FuncVal, qspCallBacks[QSP_CALL_SHOWIMAGE].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallShowMessage(QSP_CHAR *text) { /* Здесь показываем сообщение */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_SHOWMSGSTR].IsSet) { qspSaveCallState(&state, QSP_TRUE, QSP_FALSE); if (text) { strUTF8 = qspW2C(text); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_SHOWMSGSTR].FuncVal, qspCallBacks[QSP_CALL_SHOWMSGSTR].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallSystem(QSP_CHAR *cmd) { /* Здесь выполняем системный вызов */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_SYSTEM].IsSet) { qspSaveCallState(&state, QSP_FALSE, QSP_FALSE); if (cmd) { strUTF8 = qspW2C(cmd); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_SYSTEM].FuncVal, qspCallBacks[QSP_CALL_SYSTEM].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallDebug(QSP_CHAR *str) { /* Здесь передаем управление отладчику */ QSPCallState state; char *strUTF8; AS3_Val args; if (qspCallBacks[QSP_CALL_DEBUG].IsSet) { qspSaveCallState(&state, QSP_FALSE, QSP_FALSE); if (str) { strUTF8 = qspW2C(str); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_DEBUG].FuncVal, qspCallBacks[QSP_CALL_DEBUG].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }
void qspCallOpenGame(QSP_CHAR *file) { /* Здесь позволяем пользователю выбрать файл */ /* состояния игры для загрузки и загружаем его */ QSPCallState state; AS3_Val args; char *strUTF8; if (qspCallBacks[QSP_CALL_OPENGAMESTATUS].IsSet) { qspSaveCallState(&state, QSP_FALSE, QSP_TRUE); if (file) { strUTF8 = qspW2C(file); args = AS3_Array("StrType", strUTF8); free(strUTF8); } else args = AS3_Array("StrType", 0); AS3_Call(qspCallBacks[QSP_CALL_OPENGAMESTATUS].FuncVal, qspCallBacks[QSP_CALL_OPENGAMESTATUS].ThisVal, args); AS3_Release(args); flyield(); qspRestoreCallState(&state); } }