Jump to content

ensiform

Members
  • Posts

    1,626
  • Joined

  • Last visited

Posts posted by ensiform

  1. It is independant to OS bitness. Use int64_t.

    @ensiform, if he is making new weapons then save games compatibility is out of question - it's definitely won't be compatible anyways. I am sure he knows that.

    But is he distributing a new engine or just a mod?  Engine changes is required to make either/any solution work.

     

    And you now have to change that ENTIRE stat array to int64_t if you want to go with ent's option.  Plus the MSG_read/write functions also do not support > 32 so more changes required there as well.

     

    Level transitions code in engine also blindly assumes the stats array is a regular int when reading/writing to the cvars.

     

    There is no EASY solution for this.  The best imo, is to add STAT_WEAPONS2 but then you also have to create some functions for bit setting and bit checking and removing etc and replace all areas where STAT_WEAPONS is used with those functions to use the correct STAT_WEAPONS or STAT_WEAPONS2.  That one place you've shown is not the only location you need to look at unfortunately.  I cannot really help you with this right now sorry.

     

    Something like this:

    You'd have to use these everywhere pretty much though in place of the equivalent final line in each respective function.  And I'm not sure how that would work for the function you listed yet as it gets a bit more complicated.

    qboolean BG_WeaponArrayCheck( const playerState_t *ps, int value )
    {
    	int choice = STAT_WEAPONS;
    	if ( value > 31 )
    	{
    		choice = STAT_WEAPONS2;
    		value -= 32;
    	}
    
    	return (ps->stats[choice] & (1 << value)) ? qtrue : qfalse;
    }
    
    void BG_WeaponArraySet( playerState_t *ps, int value )
    {
    	int choice = STAT_WEAPONS;
    	if ( value > 31 )
    	{
    		choice = STAT_WEAPONS2;
    		value -= 32;
    	}
    
    	ps->stats[choice] |= (1 << value);
    }
    
    void BG_WeaponArrayRemove( playerState_t *ps, int value )
    {
    	int choice = STAT_WEAPONS;
    	if ( value > 31 )
    	{
    		choice = STAT_WEAPONS2;
    		value -= 32;
    	}
    
    	ps->stats[choice] &= ~(1 << value);
    }
    
  2. Who told you it can "only" have 32?

     

    Adding new structures (or changing their object size) to clients will cause save game incompatibilities, sadly.  And in SP this field is engine-wide not mod-only.

     

    The other option to avoid needing int64_t would be adding an extra STAT_WEAPONS field.  And using some bit storage checks to determine which array is currently being used.

     

    Don't know anything about the AI stuff sorry.

    Asgarath83 likes this
  3. Only thing that worries me about selecting D3/Q4 formats is they are very heavily biased to the old corridor running maps. They would overcome a lot of limits I imagine, but are not really suited to anything like a large star wars universe. When JKA was created there really wasn't anything better, but now I think we could find something more generic and yet common.

    These constraints are not going to mysteriously vanish from the engine though even if the map editor and potential compiler can do more.

    I wouldn't choose source engine, hammer is so shit to use. I dunno whether it's the map or the game, but I really hate that little loading thing that happens in HL2 SP.  I'd rather Doom 3/Quake 4 because I know the Quake 4 editor is built into Quake 4 itself and we could do the same thing.

     

    Would we need to match licenses or can we just implement any format @@ensiform @@Raz0r @@Xycaleth?

    Realistically implementing the renderer and or editor together shouldn't be very difficult to do in the long run if starting from scratch. 

  4. @@mrwonko, Of course but the program is obviously lacking some shit that was added in 1.5/netradiant then it needs the capabilities to do those things here.

     

    The codebase is undoubtedly a nightmare.  NetRadiants is at least mostly C++ but its over-engineered C++ IMO and it looks just as bad as the mixed interface in 1.4/1.6.  But nobody really really wants to be the 1 person to make a new radiant from scratch when so few use the tool.  Which is where one should start first anway.  q3map2 essentially has to stay or else you won't get the same resulting maps.

  5. Attempt to copy the ioq3 one for starters I would prefer if it had its own section entirely.  So OJK is the main page with a logo etc.

  6. We could use someone to fix up G2 handles usage in SP.

     

    Also cleaning up module access in SP between gamecode and engine.

     

    ALSO SP could use someone who knows how to serialize existing data structures and keep it compatible with base for savegames.

  7. It needs to be more OpenJK specific though so users don't have to go searching.

     

    And the github one is less user friendly for people not looking to compile from source.

  8. I'm thinking a Wiki of documentation would be a good idea?  I realize we probably need some sort of offline documentation for users too in case they don't have internet etc but:

     

    http://wiki.ioquake3.org/Main_Page

     

    This has a lot of concerns addressed that we would need to be addressing to our playerbase and server admins as well.

×
×
  • Create New...