protected void initializeCommandTypeInfo()
    {
        super.initializeCommandTypeInfo();
        
        Map mm6ArgumentTypeArrayByCommandTypeMap = super.getArgumentTypeArrayByCommandTypeMap();
        Map mm6ArgumentTypeDisplayInfoArrayByCommandTypeMap = super.getArgumentTypeDisplayInfoArrayByCommandTypeMap();

        Object replacementArgumentsByCommandType[] =  new Object[] {
                new Integer(EVENT_COMMAND__CreateMonster),  new Object[] {
                        _I_(ARGUMENT_TYPE__SPECIES_TYPE), "of species #", ",", _I_(1),
                        _I_(ARGUMENT_TYPE__SUBSPECIES_TYPE), "subspecies", null, _I_(2),
                        _I_(ARGUMENT_TYPE__MONSTER_CREATION_COUNT), null, "monster(s)", _I_(0),
                        _I_(ARGUMENT_TYPE__COORDINATE_SET), "at", null, _I_(3),
                        _I_(ARGUMENT_TYPE__UNKNOWN_INTEGER), "with spawn group number", null, _I_(4), // TODO: ARGUMENT_TYPE__SPAWN_GROUP_NUMBER
                        _I_(ARGUMENT_TYPE__UNKNOWN_INTEGER), "and monster name id", null, _I_(5) // TODO: ARGUMENT_TYPE__MONSTER_NAME_ID
                    },
                new Integer(EVENT_COMMAND__ModifyMonster),  new Object[] {
	                    _I_(ARGUMENT_TYPE__UNKNOWN_INTEGER), "monsterId?", null, _I_(1),
	                    _I_(ARGUMENT_TYPE__UNKNOWN_INTEGER), "bit?", null, _I_(2),
	                    _I_(ARGUMENT_TYPE__BOOLEAN), "Set?", null, _I_(0), // set or unset
                	},
                	
            	new Integer(EVENT_COMMAND__EV_PlaySmacker),  new Object[] {
					_I_(ARGUMENT_TYPE__UNKNOWN_BYTE),  "stretch?", null, _I_(0),
					_I_(ARGUMENT_TYPE__UNKNOWN_BYTE),  "exit now?", null, _I_(1),
            		_I_(ARGUMENT_TYPE__FILENAME_12), null, null, _I_(2) // movie name, seems like it might only be 9 characters
            	}
        };

        int argumentTypesForCommandTypeArrayColumns = 2;
        if (replacementArgumentsByCommandType.length % argumentTypesForCommandTypeArrayColumns != 0)
        {
            throw new RuntimeException("argsAndSizeArray.length = " + replacementArgumentsByCommandType.length + " which is not a power of " + argumentTypesForCommandTypeArrayColumns + ".");
        }

        for (int index = 0; index < replacementArgumentsByCommandType.length; index = index+argumentTypesForCommandTypeArrayColumns)
        {
            Integer commandTypeNumber = (Integer)replacementArgumentsByCommandType[index];
            Object argumentTypeDataArray[] = (Object [])replacementArgumentsByCommandType[index+1];

            Integer key = null;
            for (int commandTypesIndex = 0; commandTypesIndex < commandTypes.length; commandTypesIndex++) {
    			if (commandTypes[commandTypesIndex].equals(commandTypeNumber))
    			{
    				key = new Integer(commandTypesIndex);
    			}
    		}
            if (null == key)
            {
                throw new RuntimeException("Unable to find command type value" + commandTypeNumber + " in commandTypes");
            }
            
            int[] argumentTypeArray = getArgumentTypeArrayFromArgumentTypeDataArray(argumentTypeDataArray);
            Object newArgumentTypeArrayValue = argumentTypeArray;

            if (false == mm6ArgumentTypeArrayByCommandTypeMap.containsKey(key))
            {
                throw new RuntimeException("mm6ArgumentTypeArrayByCommandTypeMap does not contain key " + key + " for replacement value of " + newArgumentTypeArrayValue);
            }

            mm6ArgumentTypeArrayByCommandTypeMap.put(key, newArgumentTypeArrayValue);

            
            ArgumentTypeDisplayInfo[] argumentTypeDisplayInfoArray = getArgumentTypeDisplayInfoArrayFromArgumentTypeDataArray(argumentTypeDataArray);
            Object newArgumentTypeDisplayInfoArrayValue = argumentTypeDisplayInfoArray;

            if (false == mm6ArgumentTypeDisplayInfoArrayByCommandTypeMap.containsKey(key))
            {
                throw new RuntimeException("mm6ArgumentTypeDisplayInfoArrayByCommandTypeMap does not contain key " + key + " for replacement value of " + newArgumentTypeArrayValue);
            }

            mm6ArgumentTypeDisplayInfoArrayByCommandTypeMap.put(key, newArgumentTypeDisplayInfoArrayValue);
        }
    }