2020-09-11 23:46:04 +03:00
|
|
|
|
//
|
|
|
|
|
// Copyright 2020 Electronic Arts Inc.
|
|
|
|
|
//
|
|
|
|
|
// The Command & Conquer Map Editor and corresponding source code is free
|
|
|
|
|
// software: you can redistribute it and/or modify it under the terms of
|
|
|
|
|
// the GNU General Public License as published by the Free Software Foundation,
|
|
|
|
|
// either version 3 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
// The Command & Conquer Map Editor and corresponding source code is distributed
|
|
|
|
|
// in the hope that it will be useful, but with permitted additional restrictions
|
|
|
|
|
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
|
|
|
|
// distributed with this program. You should have received a copy of the
|
|
|
|
|
// GNU General Public License along with permitted additional restrictions
|
|
|
|
|
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
|
|
|
|
using MobiusEditor.Model;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
|
|
|
|
namespace MobiusEditor.Interface
|
|
|
|
|
{
|
|
|
|
|
public enum FileType
|
|
|
|
|
{
|
|
|
|
|
None,
|
|
|
|
|
INI,
|
|
|
|
|
BIN,
|
|
|
|
|
MEG,
|
|
|
|
|
PGM
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public enum GameType
|
|
|
|
|
{
|
|
|
|
|
None,
|
|
|
|
|
TiberianDawn,
|
2022-09-20 18:40:27 +02:00
|
|
|
|
RedAlert,
|
|
|
|
|
SoleSurvivor
|
2020-09-11 23:46:04 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public interface IGamePlugin : IDisposable
|
|
|
|
|
{
|
2022-09-25 12:11:59 +02:00
|
|
|
|
string Name { get; }
|
|
|
|
|
|
2020-09-11 23:46:04 +03:00
|
|
|
|
GameType GameType { get; }
|
2022-09-25 12:11:59 +02:00
|
|
|
|
|
2022-09-22 01:26:46 +02:00
|
|
|
|
bool IsMegaMap { get; }
|
2020-09-11 23:46:04 +03:00
|
|
|
|
|
|
|
|
|
Map Map { get; }
|
|
|
|
|
|
|
|
|
|
Image MapImage { get; }
|
|
|
|
|
|
2022-10-02 12:40:55 +02:00
|
|
|
|
IFeedBackHandler FeedBackHandler { get; set; }
|
|
|
|
|
|
2020-09-11 23:46:04 +03:00
|
|
|
|
bool Dirty { get; set; }
|
|
|
|
|
|
2022-09-25 12:11:59 +02:00
|
|
|
|
string ExtraIniText { get; set; }
|
2022-09-10 02:47:12 +02:00
|
|
|
|
|
2020-09-11 23:46:04 +03:00
|
|
|
|
void New(string theater);
|
|
|
|
|
|
2022-10-02 12:40:55 +02:00
|
|
|
|
IEnumerable<string> Load(string path, FileType fileType);
|
2020-09-11 23:46:04 +03:00
|
|
|
|
|
|
|
|
|
bool Save(string path, FileType fileType);
|
2022-08-14 15:12:30 +02:00
|
|
|
|
|
2023-03-10 21:45:02 +01:00
|
|
|
|
bool Save(string path, FileType fileType, Bitmap customPreview, bool dontResavePreview);
|
2022-08-18 00:41:47 +02:00
|
|
|
|
|
2022-08-14 15:12:30 +02:00
|
|
|
|
string Validate();
|
2022-10-13 18:45:23 +02:00
|
|
|
|
|
|
|
|
|
IEnumerable<String> AssessMapItems();
|
2022-10-18 08:56:25 +02:00
|
|
|
|
|
|
|
|
|
HashSet<string> GetHousesWithProduction();
|
2022-10-28 15:15:52 +02:00
|
|
|
|
|
2023-03-16 19:03:14 +01:00
|
|
|
|
int[] GetRevealRadiusForWaypoints(Map map, bool forLargeReveal);
|
2023-03-12 02:40:33 +01:00
|
|
|
|
|
2022-11-14 23:13:32 +01:00
|
|
|
|
IEnumerable<String> CheckTriggers(IEnumerable<Trigger> triggers, bool includeExternalData, bool prefixNames, bool fatalOnly, out bool fatal, bool fix, out bool wasFixed);
|
2022-10-28 15:15:52 +02:00
|
|
|
|
|
2023-03-12 02:40:33 +01:00
|
|
|
|
|
2022-11-14 23:13:32 +01:00
|
|
|
|
bool MapNameIsEmpty(string name);
|
2020-09-11 23:46:04 +03:00
|
|
|
|
}
|
|
|
|
|
}
|