[dink-develop] Project Status Report
Status: Pre-Alpha
Brought to you by:
aerea
From: Andrew <ae...@co...> - 2004-02-17 07:02:41
|
======== = TODO = ======== These are the things off the top of my head. Anything else? * Sprite Rendering (Francis). * Sprite Movement Control (Francis). * Fix the Timer to manage Dink's speed (Francis). * Sequence unloading. (Francis). * Fix the FPS Timer. (Me) * Directory/File Control (Me). * DinkC++ Integration (Me - if I can ever understands DesPlesda's overly-complicated manner of states). * Editor (I'm working on that). * Some sort of organization for the random testing variables we have scattered about. I'll take that job. (If I can't get it to work, I'll give the job to Des. :-P). * DinkC++ (Des). * Dink Map -> Windemere Map Converter (Des). * Dink Save -> Windemere Save Converter (Des). ===================== = THINGS TO CONSIDER = ===================== We need some sort of better system besides frame/seq: that way sucks. Perhaps an objective method? #define Tree TreeGraphics.dgp Tree.16 // References the 16th file in TreeGraphics.dgp. Perhaps a colon could be used? ==================== = NEW FILE FORMATS = ==================== DinkC++ --- .dpp (Alternative: .wpp) DinkC++ Assembly file --- .dsp (Alternative 1: .dap. Alternative 2: .ddp) Windemere Graphics Pack --- .dgp (Alternative: .wgp) [This is the .tar.bz2 thingamabop] Compressed D-Mod File --- .dmod (Alternative: .wmod) Windemere Save File --- .dsx (Replace x with slot number. Alternative: .wsx) Windemere Map File --- .dmf (Alternative: .wmf) Windemere Area Control --- .dac (Alternative: .wac) Windemere Segment Control --- .dsc (Alternative: .wsc) NOTE: Windemere Area Control and Windemere Segment Control are only to be used if the single map file cannot hold both areas and segments. (I don't know how much capability you packed into the node parser, Des). ===================== = NEW FILE CONTROLS = ===================== Here is a list of the new file controls that I'm sure are so discreet none of you know about. :P *- int DFileSystem::DtoC(const char *szFileIn) This function takes szFileIn and converts it from a mangled .D file to a .C file. It will always end in .C. You can use the rename function (discussed later) to rename it. *- bool DFileSystem::Exist(const char *szPath) A really handy function, this function returns a bool if the specified file exists or not. *- bool DFileSystem::DeleteFile(const char *Path) Deletes the specified file. Simple Enough. *- bool DFileSystem::RenameFile(const char *OldName, const char *NewName) Renames a file from (gasp) OldName to NewName. Note: The next five are Win32-only. I'm working on a UNIX version. *- bool DFileSystem::IsDir(const char *Path) Returns a bool if the specified name is an existing directory. *- bool DFileSystem::AddFile(const char *Path, bool bForce = false) Creates the specified file. If the path exists, the file will not be touched. Use bForce = true to truncate it. Note: The next three functions go together. *- char* DFileSystem::GetFirstFile(const char *SearchTerms) Returns the name of the file based on the SearchTerms. Returns null if there is no file matching your terms. *- char* DFileSystem::GetNextFile() Returns the name of the next file. Returns a null value if it doesn't exist. *- void DFileSystem::CloseHandle() Closes all file search handles. These three functions can be used together to build a file list like so. The following code outputs, to STDIO, a list of all .DLL files in the current directory: std::cout << DFileSystem::Get()->GetFirstFile("*.dll") << std::endl; std::string LastFile; std::string NextFile; while(1) { NextFile = DFileSystem::Get()->GetNextFile(); if(!NextFile.compare(LastFile) == 0) { std::cout << NextFile << std::endl; } else { DFileSystem::Get()->CloseHandle(); break; } LastFile = NextFile; } Make sure to close the file handle! If not done, you will encounter access problems, not to mention memory leaks (let's just, for now, assume Microsoft's code is leak-free (ha!)) ================ = BZIP2 SUPPORT = ================ int DBZFile::Decompress(char* source, char* dest, bool bDeleteDestWhenKilled) This needs to become a member class, or at least a member function, of DFileSystem. It could then be called with DFileSystem::Get()->DBZFile::Decompress(...);? ==================== = TEMPORARY THINGS = ==================== void DFileSystem::Strdown(std::string &s) That will be moved into DKernel (or possibly a DString class with AppendExtension and ConvertString) soon. You may, however, be able to make use of it now. Specify a std::string to this function and it will convert the string to all lowercase. Good for UNIX! This function will eventually take advantage of either operator overloading or templating to take support for const char. -- int iTex; DMap m; Things like these are to be found all over the place. They should be placed in a giant multiset or in a class somewhere. Anybody have any other ideas? ========================= = THINGS THAT DON'T WORK= ========================= * The current -game specification. For example, specifying "-game crap" to dink returns a directory of "crap/dink/...". ============================ = CURRENT FEATURE REQUESTS = ============================ Request 880216: Request positionable sprites in the interface: status bar etc. Request alpha channel for all sprites that make up the interface elements. [I'M ASSIGNING IT TO: Franics and Myself. I'll take the first. Second should already be done. ] ---- Request 880221: Request for the ability to change the text size of text sprites Request the ability to set multiple colors of text within same line of text Request the ability to add background sprite to text sprites and ability to set color or change graphic. This would look like text bubble most common in comic books [I'M ASSIGNING IT TO: Franics, Myself, and DesPlesda. I've already done the first. A maximum limit needs to be implemented, however? Des: You've got number 2. Francis: Number 3 //if you'd like//. This is not a necessary one and can be saved until later.] ---- Request 880226: Request ability to have string variables as well as concatenation of strings, ie: &crap = "foo" + "bar" [I'M ASSIGNING IT TO: DesPlesda] ---- Request 880238: Request for booleans: true/false, as well as standard operators for use with booleans: if (!&crap) { &crap = true; } [I'M ASSIGNING IT TO: DesPlesda] ---- Request 881109: Request for independent speeds for Dinks walk, and attack animations so that if you bump up one, you don't bump up both. Would create opportunities for cool unique weapons that would increase attack speed only as well as vice versa for boots etc. [I'M ASSIGNING IT TO: Franics and DesPlesda] ==================== = WORDS OF WISDOM = ==================== I don't know what you're supposed to put here, but it had a catchy title... Just insert some inspirational message here, I guess. Teamwork, blah blah blah, motivation, blah blah blah, etc. -- Andrew |