Adonis

From Ch2r

Jump to: navigation, search
Adonis Logo
Enlarge
Adonis Logo

Get the latest version at the Downloads

This is currently in progress as a learning project to use the new features of the .NET 2.0 framework.

Contents

Code

The code is seperated in 4 C# projects. One of the projects isn't really used though.


Adonis.Core

The core part, got the loading code for everything, plus the whole OO representation of a .map file. Everything is done with DesignPatterns. You got the base Map class and inherited classes for Halo1Map (and then split up for PC/Xbox/CE/Demo) and Halo2Map You always use the MapFactory class with a call like this.

  1. Map map = MapFactory.Load(fileName);

All the maps are kept in a local List<Map>, the factory will automaticly detect the map type (Halo 1/Halo 2...) and create the correct instance. The MapFactory class can also be used to find the correct Shared/UI/... map for a specific map

  1. Map mainMenuMap = MapFactory.GetMainMenu(map);

Which will be used for extracting raw data from shared maps.

Some other stuff in here, is the Log part, which will generate our complete log including ALL unhandled expections. Example: Adonis log

We also have some basic meta support, each IndexItem can have a Meta property, with inherited MetaData classes like SbspMeta, BitmMeta, DecrMeta for hardcoded meta support (much faster). BitmMeta for example is completly done, so if you have an IndexItem you can cast its Meta property to BitmMeta (quick check for if .Tag == "bitm") and then use the method like Save/... SbspMeta is a WIP.


Adonis.Controls

The project for any Adonis/Halo related controls. The hex editor from the screenshot is in here, so is the map treeview control and the top right Item control. Another control is an ItemSelect control, for choosing IndexItems from a specific map with a certain tag. (For reflexive swapping etc).


Adonis

This is the GUI project, which combines everything together. Our main goal is to have almost no code in here so everything is reusable from the other 2 projects. So if any method gets to big it will be moved in the other projects where it belongs. For the moment it has 3 forms, MainForm (screenshot), LogForm which shows the log from the link and an AdvancedForm which I started working on, this last form will show different plugins, more information and options.


Adonis.Wrappers

This was a side-project to get support for other editors so we could use their plugins, but the first one we tried (ADI) used structs for everything and those can't be inherited in .NET.


Screenshot

Image:Adonis.png

Retrieved from "http://ch2r.net/wiki/Adonis"
Personal tools

SourceForge.net Logo