Go to file
kts 13df61167d Added dev-cpp project for the engine. It kind of works. For some reason, as soon as the fps goes over 60, the engine freezes. I've tried adding SDL_Delay(s), removing most of the engine, as well as tweaking both renderers, but the outcome is the same. No clue as to why it would stop responding after a couple seconds, but work fine during those initial moments. 2014-03-02 23:28:49 -08:00
devcpp Added dev-cpp project for the engine. It kind of works. For some reason, as soon as the fps goes over 60, the engine freezes. I've tried adding SDL_Delay(s), removing most of the engine, as well as tweaking both renderers, but the outcome is the same. No clue as to why it would stop responding after a couple seconds, but work fine during those initial moments. 2014-03-02 23:28:49 -08:00
engine More stuff added - how nondescript. In particular, data.c/.h now includes a function for loading in a .tsc, or timesynk configuration file, into a Table. This adheres to the information regarding the timesynk Configuration Syntax on the wiki. This feature has been implemented in the engine, as video width, height, and other similar options are loaded from the settings.tsc file relative to the engine. Also added a modules directory with a basic skeleton for the Xibalba module. 2014-03-02 22:10:49 -08:00
interface Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
net sockets now work on windows, also discovered that echo is completely broken between timesynk instances running on multiple systems - telnet works fine still tho. Will have to recode netcode to see what's wrong. Also added sendall function which should guarantee the send()ing of a buffer (no waiting). 2013-11-07 01:11:49 -08:00
test More stuff added - how nondescript. In particular, data.c/.h now includes a function for loading in a .tsc, or timesynk configuration file, into a Table. This adheres to the information regarding the timesynk Configuration Syntax on the wiki. This feature has been implemented in the engine, as video width, height, and other similar options are loaded from the settings.tsc file relative to the engine. Also added a modules directory with a basic skeleton for the Xibalba module. 2014-03-02 22:10:49 -08:00
tile_editor More stuff added - how nondescript. In particular, data.c/.h now includes a function for loading in a .tsc, or timesynk configuration file, into a Table. This adheres to the information regarding the timesynk Configuration Syntax on the wiki. This feature has been implemented in the engine, as video width, height, and other similar options are loaded from the settings.tsc file relative to the engine. Also added a modules directory with a basic skeleton for the Xibalba module. 2014-03-02 22:10:49 -08:00
tiles Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
tools Lots of stuff added since last commit. ASCII-based Font system and Element system(similar to tile_editor)s now partially in place. State management now more flushed out, but still likely to be tweaked. Now sports two renderers - software-mode SDL and hardware-accelerated OpenGL mode. At the moment code is not in place to switch between the two renderers in-program (managed by a call to interfaceSetRenderer), but it will be added later with the appropriate freeing of surfaces and textures. A more generalized binary to .c/.h program was added to the new tools subdirectory - it takes a binary file as an argument and creates the appropriate .c/.h files. It also can handle the append flag, -a. 2014-02-22 00:20:44 -08:00
xcode Fixed PTime on OS X. OpenGL performance still terrible on OS X. 2014-02-26 16:36:12 -08:00
xibalba After much struggling due to a fool's lack of documentation, the tile_editor is now (seemingly) fully functional. Changes to tile entries can now be made by adding/deleting/modifying the UI elements and pressing the 'commit changes' button. This only does a change for the TileData, etc., stored in ram. These changes can be saved to a file by specifying a filename in the data field and pressing the 'save' button. On a more technical note, fixed some bugs in the data reading code, such as inventory lines being partially read but then being assigned as a simple key=>string pair rather than an InventoryData struct - this, of course, caused segfaults and was particularly mystifying. Table structs now also have a 'count' property that is incremented or decremented whenever a TablePair is added. 2014-01-20 02:21:15 -08:00
.DS_Store Added engine as a target for the xcode project. SDL_Surface to OpenGL Texture function now packs pixel data according to the endianness of the machine, as acquired from a run-time test in the function. This should probably be checked for on start and have an appropriate system flag set. 2014-02-22 01:09:37 -08:00
.game.c.swo Added engine as a target for the xcode project. SDL_Surface to OpenGL Texture function now packs pixel data according to the endianness of the machine, as acquired from a run-time test in the function. This should probably be checked for on start and have an appropriate system flag set. 2014-02-22 01:09:37 -08:00
COMPILING.txt Modified the devcpp projects to incorporate the many changes that have occurred since the last devcpp update. Also had to initialize the next and prev properties of Tiles created by newTile, as the generated executable segfaulted due to non-initialized pointers. 2013-10-19 23:28:31 -07:00
Makefile Added rendering code for sprite and fonts, made a pretty bad high precision timer - while being higher precision than SDL_GetTicks, it has a few problems that I must sort out. Also need to make it crossplatform. 2014-02-25 02:45:10 -08:00
NOTES Map now resides on a multidimensional array titled map_matrix. This stores the Tiles in a Stack structure at each cell - I believe this should instead be changed so that each Tile instead has pointers to the previous and next Tiles, so that the map_matrix only holds Tile pointers rather than Stack structs containing some variable amount of Tile pointers. Also added a visible_matrix that denotes what tiles are visible to the player. This is simply a multi-dimensional array of ints that act as bit fields for various flags (such as TILE_VISIBLE, TILE_CAN_SEE, TILE_LIGHT_ONE, TILE_LIGHT_TWO, etc. - multiple light flags can be concatted to provide a broad array of light levels). 2013-09-28 20:50:52 -07:00
common.h Added much code for the foundation of the netcode. Server automatically starts on port 31337 and runs as a separate thread in the SDL client. This TCP server functions as a basic echo server and can be connected to thru telnet or by typing 'connect 127.0.0.1 31337' in timesynk's console. Once connected, the echo functionality can be tested by using console command 'send my message goes here'. Somewhat buggy and crashses on occasion - suspected cause is consoleLog()ing a string that is not properly nul terminated, resulting in reading memory out of bounds. Curses client does not run the server properly at the moment, probably due to using select on server, clients, and stdin when combined with ncurses - will look into this later. 2013-11-06 23:40:19 -08:00
console.c Implemented the basic system for slots, stats, and damage wherein the type and amount of slots, stats, or die rolls are defined in their respective Tiles as a string. Although this has computational shortcomings due to parsing, it is the most flexible of all and forces no hard-coding on slot types or stat types. It can later be optimized, of course, as the size of each ItemTile, PlayerTile, and NpcTile has increased by at least 128 bytes. Note that some code is left-over from when the initial slot system was written using structs. Additionally, inventoryContext now handles up and down appropriately, and the inventory display has been improved. Along with the inventory display, an equipment surface is shown, although at the moment it lacks any equipment listing. 2013-11-23 03:28:38 -08:00
console.h Added much code for the foundation of the netcode. Server automatically starts on port 31337 and runs as a separate thread in the SDL client. This TCP server functions as a basic echo server and can be connected to thru telnet or by typing 'connect 127.0.0.1 31337' in timesynk's console. Once connected, the echo functionality can be tested by using console command 'send my message goes here'. Somewhat buggy and crashses on occasion - suspected cause is consoleLog()ing a string that is not properly nul terminated, resulting in reading memory out of bounds. Curses client does not run the server properly at the moment, probably due to using select on server, clients, and stdin when combined with ncurses - will look into this later. 2013-11-06 23:40:19 -08:00
context.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
context.h Equipping and unequipping items now fully implemented. Uses the player's slots and used_slots properties along with the target item's required slots property. used_slots+required_slots are checked against slots and if less than, used_slots is changed accordingly. Unequipping removes required_slots from used_slots. equipmentContext added for equipping/unequipping as well. interface/sdl.c changed so that the focused UI (being either inventory or equipment) is at a higher opacity than the unfocused UI. 2013-11-26 16:02:04 -08:00
controller.h interfacePrint is no longer directly called in non-interface contexts, but rather is handled by a messaging system. When one tile wishes to tell another tile a message, whether that be for descriptive purposes such as opening a door or otherwise, messageTile(Tile *sender, Tile *recipient, const char *message) is called. Within that, if the recipient->tid is PLAYER, then it calls interfacePrint. This will later be modified to check if the recipient->data->controller matches the actual user's controller (thus tying messages to particular users only). Also added was the basic struct for controller, but it is thus far unused in actual game code. The Controller will be used once a basic network/game structure is in order. 2013-11-03 22:53:13 -08:00
data.c More stuff added - how nondescript. In particular, data.c/.h now includes a function for loading in a .tsc, or timesynk configuration file, into a Table. This adheres to the information regarding the timesynk Configuration Syntax on the wiki. This feature has been implemented in the engine, as video width, height, and other similar options are loaded from the settings.tsc file relative to the engine. Also added a modules directory with a basic skeleton for the Xibalba module. 2014-03-02 22:10:49 -08:00
data.h More stuff added - how nondescript. In particular, data.c/.h now includes a function for loading in a .tsc, or timesynk configuration file, into a Table. This adheres to the information regarding the timesynk Configuration Syntax on the wiki. This feature has been implemented in the engine, as video width, height, and other similar options are loaded from the settings.tsc file relative to the engine. Also added a modules directory with a basic skeleton for the Xibalba module. 2014-03-02 22:10:49 -08:00
display.h As per usual, added a bunch of stuff and remember almost none of them. Most importantly, a console interface has been added that can be summoned by pressing the tilde key. Much of the functionality, including the less-than-stellar associative array (that acts as a function pointer) was ripped from the noirchat project. The only important commands are 'quit' and, for SDL, 'set_video widthxheight 0|1', with 0 representing windowed and 1 representing fullscreen. Both the curses and SDL client now have camera offsets, allowing for the center of the screen to always be centered on the player. There are plans to have the camera offset be relative to the distance from the edges of the map (so if the player is 25% from the left-side of the map, the camera offset would be 25% off center). Really in need of code clean-up and reorganization. 2013-10-22 02:49:25 -07:00
game.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
game.h Added much code for the foundation of the netcode. Server automatically starts on port 31337 and runs as a separate thread in the SDL client. This TCP server functions as a basic echo server and can be connected to thru telnet or by typing 'connect 127.0.0.1 31337' in timesynk's console. Once connected, the echo functionality can be tested by using console command 'send my message goes here'. Somewhat buggy and crashses on occasion - suspected cause is consoleLog()ing a string that is not properly nul terminated, resulting in reading memory out of bounds. Curses client does not run the server properly at the moment, probably due to using select on server, clients, and stdin when combined with ncurses - will look into this later. 2013-11-06 23:40:19 -08:00
helper.c Due to various errors on windows, along with much rage, it was decided that it is far more sensible for consoleGetCommand to simply return command[0] as the command string and command[1] as the remainder, leaving the task of distinguishing one argument from another to the function that consoleProcessCommand passes it to. This is, of course, up for remodeling in the future (possibly by using a variable amount of arguments such as in printf), but for now it'll do. Also added C preprocessor conditions for strndup to allow on Win*. 2013-10-23 21:05:29 -07:00
helper.h Due to various errors on windows, along with much rage, it was decided that it is far more sensible for consoleGetCommand to simply return command[0] as the command string and command[1] as the remainder, leaving the task of distinguishing one argument from another to the function that consoleProcessCommand passes it to. This is, of course, up for remodeling in the future (possibly by using a variable amount of arguments such as in printf), but for now it'll do. Also added C preprocessor conditions for strndup to allow on Win*. 2013-10-23 21:05:29 -07:00
inventory.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
inventory.h Equipping and unequipping items now fully implemented. Uses the player's slots and used_slots properties along with the target item's required slots property. used_slots+required_slots are checked against slots and if less than, used_slots is changed accordingly. Unequipping removes required_slots from used_slots. equipmentContext added for equipping/unequipping as well. interface/sdl.c changed so that the focused UI (being either inventory or equipment) is at a higher opacity than the unfocused UI. 2013-11-26 16:02:04 -08:00
main.c Implemented the basic system for slots, stats, and damage wherein the type and amount of slots, stats, or die rolls are defined in their respective Tiles as a string. Although this has computational shortcomings due to parsing, it is the most flexible of all and forces no hard-coding on slot types or stat types. It can later be optimized, of course, as the size of each ItemTile, PlayerTile, and NpcTile has increased by at least 128 bytes. Note that some code is left-over from when the initial slot system was written using structs. Additionally, inventoryContext now handles up and down appropriately, and the inventory display has been improved. Along with the inventory display, an equipment surface is shown, although at the moment it lacks any equipment listing. 2013-11-23 03:28:38 -08:00
main.h Added tile scaling via interfaceSetScale. This currently modifies the various spritesheet->Surface(s) loaded from tiles.c/pack_tiles, but they should modify live alternatives, so that changes always start from the original surfaces. Also created shading on the rock wall, created a new palisade wall, and also fixed/prettified the current doors. 2013-11-10 01:01:07 -08:00
map.c Implemented the basic system for slots, stats, and damage wherein the type and amount of slots, stats, or die rolls are defined in their respective Tiles as a string. Although this has computational shortcomings due to parsing, it is the most flexible of all and forces no hard-coding on slot types or stat types. It can later be optimized, of course, as the size of each ItemTile, PlayerTile, and NpcTile has increased by at least 128 bytes. Note that some code is left-over from when the initial slot system was written using structs. Additionally, inventoryContext now handles up and down appropriately, and the inventory display has been improved. Along with the inventory display, an equipment surface is shown, although at the moment it lacks any equipment listing. 2013-11-23 03:28:38 -08:00
map.h Some minor tweaks made, majority of which I have forgotten already. DoorTile will soon be migrated to a generic TriggerTile type, in which it will exist as a DOOR subtype. 2013-10-23 18:58:17 -07:00
message.c NULL wasn't declared on non-xcode environment, so string.h was included (over stddef.h, as sprintf was required). Inventory window, such as it is, is created according to the max_slots/slots_per_row properties of the Inventory, thus adjusting for larger inventories. The current item's name is now shown at the center-bottom of the window. Dropping items is also tidier, as the inventory->selected property is adjusted if it is equal to count (i.e., the selected cursor is pushed back when the last item is removed so selected always corresponds to an existing item). 2013-11-16 16:15:22 -08:00
message.h Equipping and unequipping items now fully implemented. Uses the player's slots and used_slots properties along with the target item's required slots property. used_slots+required_slots are checked against slots and if less than, used_slots is changed accordingly. Unequipping removes required_slots from used_slots. equipmentContext added for equipping/unequipping as well. interface/sdl.c changed so that the focused UI (being either inventory or equipment) is at a higher opacity than the unfocused UI. 2013-11-26 16:02:04 -08:00
npc.c Added functions descriptions in various *.c files. Should be in the header files, but for me, having the comments with the code is far better (since it's all in-development). interface/sdl.c should likely be split into multiple files, as it handles netcode, basic graphics operations, user input, and drawing the various UI elements all in one file. 2013-11-21 18:20:20 -08:00
npc.h Added basic NPC/monster functionality as well as a console system. Simply call ConsoleLog(&string) and it'll create a new ConsoleEntry, set the console_last_entry's next to it, set the new entry's prev to console_last_entry, and finally set console_last_entry to point to the new entry (functions very similarly to Tile Chains). This may later be changed to an array form so as to easily pull sections of the log from anywhere. 2013-10-19 22:56:46 -07:00
pack_data.c Much progress on the tile editor, as it can now read in a .tsd file using the earlier developed data.c/data.h (Data, TileSetData, TileData, etc. structs and accompanying functions). Once a file is successfully loaded, changing the set/id will attempt to populate the GUI with key=>value pairs for the given tile, if it exists. Partially implemented is the parsing of InventoryData. Will implement adding new TablePairs through the GUI and the saving of any changes back to a .tsd file. Fixed some memory allocation problems as well - some leakage still existing in the tile editor as well as the Data functions/structs, but they are noted and will be taken care of in time. 2014-01-17 04:03:10 -08:00
pack_tiles.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
parser.c Equipping and unequipping items now fully implemented. Uses the player's slots and used_slots properties along with the target item's required slots property. used_slots+required_slots are checked against slots and if less than, used_slots is changed accordingly. Unequipping removes required_slots from used_slots. equipmentContext added for equipping/unequipping as well. interface/sdl.c changed so that the focused UI (being either inventory or equipment) is at a higher opacity than the unfocused UI. 2013-11-26 16:02:04 -08:00
parser.h Equipping and unequipping items now fully implemented. Uses the player's slots and used_slots properties along with the target item's required slots property. used_slots+required_slots are checked against slots and if less than, used_slots is changed accordingly. Unequipping removes required_slots from used_slots. equipmentContext added for equipping/unequipping as well. interface/sdl.c changed so that the focused UI (being either inventory or equipment) is at a higher opacity than the unfocused UI. 2013-11-26 16:02:04 -08:00
player.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
player.h NULL wasn't declared on non-xcode environment, so string.h was included (over stddef.h, as sprintf was required). Inventory window, such as it is, is created according to the max_slots/slots_per_row properties of the Inventory, thus adjusting for larger inventories. The current item's name is now shown at the center-bottom of the window. Dropping items is also tidier, as the inventory->selected property is adjusted if it is equal to count (i.e., the selected cursor is pushed back when the last item is removed so selected always corresponds to an existing item). 2013-11-16 16:15:22 -08:00
stubs.h Added tile scaling via interfaceSetScale. This currently modifies the various spritesheet->Surface(s) loaded from tiles.c/pack_tiles, but they should modify live alternatives, so that changes always start from the original surfaces. Also created shading on the rock wall, created a new palisade wall, and also fixed/prettified the current doors. 2013-11-10 01:01:07 -08:00
tags Updated Xcode to include parser.c/.h. Since it was not mentioned in last commit, parser.c/.h contains functions related to parsing slots, adding slots together, doing comparisons between slots, etc.. It is also where dice parsing and stat parsing will go as well. 2013-11-26 16:08:13 -08:00
tile.c Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
tile.h Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like. 2013-11-27 18:31:49 -08:00
wall.c Added some equipment-related code, but it needs to be reworked entirely. Equipment should just be an instance of Inventory, not its own struct. 2013-11-25 00:59:08 -08:00
wall.h Added some equipment-related code, but it needs to be reworked entirely. Equipment should just be an instance of Inventory, not its own struct. 2013-11-25 00:59:08 -08:00