if(cur_idx>=this->paramc)throwScript_FatalError(fmt::format("{}: Not enough parameters",name));
if(cur_idx>=this->paramc){
this->_TextParamError(fmt::format("{}: Not enough parameters",name));
break;
}
switch(cur_param.type){
caseStringParam::RAW_STRING:
if(!std::holds_alternative<std::string>(this->param[cur_idx]))throwScript_FatalError(fmt::format("{}: Parameter {} expects a raw string",name,cur_idx));
if(count!=cur_param.consumes)throwScript_FatalError(fmt::format("{}: Parameter {} substring consumes {}, but expected {} to be consumed",name,cur_idx,count-1,cur_param.consumes-1));
if(count!=cur_param.consumes)this->_TextParamError(fmt::format("{}: Parameter {} substring consumes {}, but expected {} to be consumed",name,cur_idx,count-1,cur_param.consumes-1));
break;
}
default:
if(cur_idx+cur_param.consumes>this->paramc)throwScript_FatalError(fmt::format("{}: Not enough parameters",name));
if(cur_idx+cur_param.consumes>this->paramc){
this->_TextParamError(fmt::format("{}: Not enough parameters",name));
break;
}
for(inti=0;i<cur_param.consumes;i++){
if(!std::holds_alternative<SQInteger>(this->param[cur_idx]))throwScript_FatalError(fmt::format("{}: Parameter {} expects an integer",name,cur_idx));