//------------------------------------------------------------------------------------------------- // NAME : Get_CommandInfo // DESC : The function to return commmand ifno. // PROGRAMMER : Yongs Lee // DATE : July 30, 2008 //------------------------------------------------------------------------------------------------- CSiegeCommand* CSiege_RecallBase::Get_CommandInfo(BYTE byIdx) { // Check index limit. if( byIdx >= MAX_BASE_INDEX ) { Throw_Error("Overd index limit!!", __FUNCTION__) ; return NULL ; } // Check index. M_COMMAND::iterator it ; for( it = m_mCommand.begin() ; it != m_mCommand.end() ; ++it ) { if( it == m_mCommand.end() ) return NULL ; if( it->second.Get_Index() != byIdx ) continue ; return &it->second ; } // Return null. return NULL ; }
//------------------------------------------------------------------------------------------------- // NAME : Insert_Command // DESC : The function to insert command. // PROGRAMMER : Yongs Lee // DATE : July 30, 2008 //------------------------------------------------------------------------------------------------- void CSiege_RecallBase::Insert_Command(BYTE byIdx, CSiegeCommand* pCommand) { // Check parameter. if(!pCommand) { Throw_Error("Invalid parameter!!", __FUNCTION__) ; return ; } // Check index. if( byIdx >= MAX_BASE_INDEX ) { Throw_Error("Over index limit!!", __FUNCTION__) ; return ; } // Insert command. m_mCommand.insert( std::make_pair( byIdx, *pCommand ) ) ; }
//------------------------------------------------------------------------------------------------- // NAME : Set_BaseKind // DESC : The function to setting base kind. // PROGRAMMER : Yongs Lee // DATE : July 30, 2008 //------------------------------------------------------------------------------------------------- void CSiege_RecallBase::Set_BaseKind(BYTE byKind) { // Check kind limit. if( byKind >= e_SIEGE_BASEKIND_MAX ) { Throw_Error("Over kind limit!!", __FUNCTION__) ; return ; } // Setting base kind. m_byBaseKind = byKind ; }
*/ static void Scan_Error(REBCNT errnum, SCAN_STATE *ss, REBCNT tkn, REBYTE *arg, REBCNT size, REBVAL *relax) /* ** Scanner error handler ** ***********************************************************************/ { ERROR_OBJ *error; REBSER *errs; REBYTE *name; REBYTE *cp; REBYTE *bp; REBSER *ser; REBCNT len = 0; ss->errors++; if (PG_Boot_Strs) name = BOOT_STR(RS_SCAN,tkn); else name = (REBYTE*)"boot"; cp = ss->head_line; while (IS_LEX_SPACE(*cp)) cp++; // skip indentation bp = cp; while (NOT_NEWLINE(*cp)) cp++, len++; //DISABLE_GC; errs = Make_Error(errnum, 0, 0, 0); error = (ERROR_OBJ *)FRM_VALUES(errs); ser = Make_Binary(len + 16); Append_Bytes(ser, "(line "); Append_Int(ser, ss->line_count); Append_Bytes(ser, ") "); Append_Series(ser, (REBYTE*)bp, len); Set_String(&error->nearest, ser); Set_String(&error->arg1, Copy_Bytes(name, -1)); Set_String(&error->arg2, Copy_Bytes(arg, size)); if (relax) { SET_ERROR(relax, errnum, errs); //ENABLE_GC; return; } Throw_Error(errs); // ENABLE_GC implied }
*/ void Trap3(REBCNT num, REBVAL *arg1, REBVAL *arg2, REBVAL *arg3) /* ***********************************************************************/ { Throw_Error(Make_Error(num, arg1, arg2, arg3)); }
*/ void Trap2(REBCNT num, REBVAL *arg1, REBVAL *arg2) /* ***********************************************************************/ { Throw_Error(Make_Error(num, arg1, arg2, 0)); }
*/ void Trap1(REBCNT num, REBVAL *arg1) /* ***********************************************************************/ { Throw_Error(Make_Error(num, arg1, 0, 0)); }
*/ void Trap0(REBCNT num) /* ***********************************************************************/ { Throw_Error(Make_Error(num, 0, 0, 0)); }