Then all hell broke loose. I started the server, and when updating the seeds status, it crashed.
Not a big deal, I had to write a lot of function and today was the first time I tested them, and I didn't expect them to work flawlesly. So I fired up Insight (a GDB GUI), and looked at some stuff. Well, the first thing was, I mispelled the definition file name. Ok, corrected it, started again. This tie it didn't crash, but didn't do what was expected. After further analysis, I realized that, since we were using a new system to load configuration files (a home built system by one of the devs), I did something wrong, using the wrong name for a tag.
Crashed again! WTF?
Then I noticed that there might be a small discrepancy between the client and server map format. After investigating for 2 hours, I realized that there was no discrepancy in the map format, but while loading the maps on the server I had to do some extra work (initialize some empty variables at the end of an array, that hold the 3d objects).
I fixed that, and while I was at it fixed some unrelated bugs, then tried to make it work again. This time, the server DID add the new plant, from the seed, because I was doing a step by step debugging on theserver, but the client did NOT see the new plant.
So I had to recompile the whole client in debug mode (takes like 5 minutes), placed a breakpoint on ADD_3D_OBJECT message from the server, and nothing happened. GRR...
I realized that I had to delete some data files from the server, because the server was thinking that the plants are already there. Ok, I did that, started again, and this time the breakpoint DID work. Only that the next step (in the debugger) threw me in the wrong function! WTF? WTFF? After some careful inspection, I realized that, for some reason, the sector.c file on the client had some characters that confused Insight and made it see additional lines of source. So I had to edit all those characters, that were normally invisible (probably a double cr or nl), start up the debugger again, only to notice that I didn't remove ALL the characters. Repeat this last step a few times, until I finally managed to make it work, and I was able to debug that function. It turned out that I calculated the wrong Z value for the ground, on the server, and the flower was underground, obscured by the tiles.
I fixed that problem, started the server and the client, typed, for the 100th time the admin command to speed up the seeds growing, so they germinate ASAP, and surprise, didn't work, again.
So here we go again, debugging the server, and the client, only to see that everything WAS going as it was supposed to go. 10 minutes and 100 profanities and blasphemies later, I realized that the flower DID appear, but:
1. It was farther than I expected.
2. it was the smallest flower in the whole game (I inadvertently chose a flower that was too small, and I didn't know that)
3. It was in the shadow of a tree, so it looked more like a spot on the ground.
4. Was obscured by a test door (only a door, not a house) that I placed there today, to test some stuff.
Well, 1 hour later, I managed to correct the wrong position thing, and some other bugs (was due by not casting an integer division to float).
Today it was the WORST programming days I had in maybe 1 year. Was like god did his very best not to let me finish this god damn thing. Perhaps he is jealous :D