/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program 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. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ #if defined(_MSC_VER) #pragma once #endif #ifndef DEFFONT_H #define DEFFONT_H #include "wwfont.h" // Default 1 color fonts. extern WWFontClass DefaultFont; enum FontStyleEnum { // Note: Space 6 means that a standard letter uses 6 points - the font is larger then that // because of overhangs and rises. // The 4 Color means there are four colors used in this not including transperancy. SPACE_6_PNT_2_COLOR, SPACE_8_PNT_3_COLOR, SPACE_11_PNT_4_COLOR, NUM_FONT_STYLES, }; enum FontRemapEnum { // A temp buffer that programmer can change before each use. USER_256_COLORS, DARK_GREEN_3_COLOR, LIGHT_GREEN_3_COLOR, DARK_GREEN_4_COLOR, LIGHT_GREEN_4_COLOR, DARK_GREEN_2_COLOR, LIGHT_GREEN_2_COLOR, DARK_BLUE_2_COLOR, LIGHT_BLUE_2_COLOR, DARK_RED_4_COLOR, // This is a RAMP palette. See/Use Build_Font_Palette_From_Ramp(). RAMP_GREEN_TO_RED_2_COLOR, // For use with 2 color fonts where color 2 is changes. Color 1 is preset to 0. NUM_FONT_REMAPS, }; // Two spacy looking fonts that use 8 colors each. extern void *FontData[NUM_FONT_STYLES]; // For now we have green cause that is all that is needed. Add more as needed. extern unsigned char *FontRemapTables[NUM_FONT_REMAPS]; // Number of colors (allocated chars) in FontRemapTable. Useful for some of the RAMPS. extern int FontRemapTablesSize[NUM_FONT_REMAPS]; // Converter class for use with Font*Data and *FontRemapTable. // You can create a font like this: // NEW WWFontClass(SpaceFont8Data, true, 1, FontConverter, GreenFontRemapTable); extern ConvertClass *FontConverter; // Load font data for fonts listed above. void Load_Default_Font_Data(); void Release_Default_Font_Data(); // A routine that will load font data from a *.fnt file make from FontMake.exe void *Load_Font_Data(char *fname); // Creates a palette from a ramp palette given min and max values. unsigned char *Build_Font_Palette_From_Ramp(float val_norm, FontRemapEnum remap, unsigned char *ret_remap = &FontRemapTables[USER_256_COLORS][0]); #endif