Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012


  • Content count

  • Joined

  • Last visited

  • Raffle Tickets


About RadWolfie

Extra Information

  • Gender
    Not Telling

Computer Details

  • Name
    Custom Build
  • Central Processor
    Intel i7-6700K
  • Motherboard
    Gigabyte GA-Z170X-Gaming 5
  • Graphics
    AMD Radeon HD 6770 graphic card (Loan)
  • Memory
    DDR4-3400 (O.C.) 16GB
  • Sound Card
    Integrated Realtek ALC1150 115dB SNR HD Audio
  • Storage
    (Not telling)
  • Power Supply
  • Case
    Rosewill Stealth
  • Display
    21:9 Samsung 29" & 16:10 Envision 24"
  • Keyboard
    HP wired keyboard
  • Mouse
    HP wired mouse
  • Operating System
    Windows 10 Pro
  1. I totally agree with multi-language support hassle. It took me almost 2 years to finally have full support for another language. At first I thought I understood the standard C API requirement, turns out it was C++ API which create a terrible result for another language. So, I already had worked for another language support since constant update to main project getting stabler. Even major fixes with unit test plugin made a major improvement and found numerous bugs on the way. Off topic: For those wishing why I'm making topics for another language support. Here's a link to testing branch I had been working on. Not bad for hobbyist coder huh?
  2. Already knew that, some people still uses it tho. Sorry I didn't mentioned it before. ... Turns out Visual Basic 14 is still using .Net framework. Here's the source of the blog: https://msdn.microsoft.com/en-us/magazine/dn890368.aspx And VB6 extensions support for Visual Studio 2012+: https://marketplace.visualstudio.com/items?itemName=MatthiasFriedrich.VisualBasicToolsforVisualStudio Turns out I had my mind mixed up with new VB 14 is newly updated version of VB6, I was wrong. I agreed. As for directory, if you have multi-language support, then you're likely to have all the coding in one bundle (in one directory). However it will create a mess inside just inside the "src" folder, so putting each coding language files in their respective language folder makes it cleaner and easier to update. So, I say keep "VisualBasic" folder for now. If someone asked for VB6 support, then "VisualBasicClassic" or the like will be created. Agreed?
  3. EDIT: It is to remain as "Visual Basic" without "(.Net)" since there is no such thing to exclude .NET framework support in current version. Calling any Visual Basic developers to this topic. Others are welcome to provide feedback as well. Since there is VB6 and VB .NET, I'm not entirely sure if Microsoft planning on support Visual Basic without .NET framework. As there is a blog about Visual Basic 14/15 about it. So... Is it suitable to maintenance "VisualBasic" directory in the API's directory for .NET framework since Visual Studio 2015 does not provide an option to exclude .NET framework. Or it should be "VisualBasic.NET" for Visual Basic .NET application and "VisualBasic" for without .NET framework? I would like to have it ready in middle of January, 2017 for the future developers.
  4. Okay, I finally have C# and Visual Basic (.NET) APIs to work and verified. Sadly there is no resolved button with this newer version. Here's the solution: Create an ini file Define the locations of where all the plugins' source code, build directory (basically inside the plugin's directory), and API's source code. Define the file extension names with standard defined pre-processor values such as... vb=#Const cs=#define cpp=#define etc... Create a converter application to... Read Defined version info structure (can be anything) Read API's central version info via h header file. Read each directory for lead to possible valid plugin. Scan each source code files for declared defined pre-processor values. Create some exception such as semicolon, white-space, tab space, etc for necessary compatibility between multi-code languages. Verify against compiled build file to match all requirement needed to convert into valid plugin via adding into plugin's module section header array. Copy converted plugin file into plugins folder. Profit! (Newer & older application will then read the converted plugin's section header to verify before attempt to load it. If it is not compatible, then it will state it is not compatible instead of instant crash.) If you have any questions relative to the steps above. I'm willing to answer them the best as I can. Edit: Clarified the last #3, Profit! (...), since I made a grammar loop...
  5. My car isn't high-tech feature everything in it. Plus Sony, for the phone, left out a few important features which cause couple conflicts as well. That is, until they released newer release to upgrade Android OS to have those features back. Haven't test it out since then, the result could be different. Although, may not for my car. As for hit "media" once, it doesn't work 100%. Sometimes it just forgets which then I had to manually set listen for Bluetooth. The car itself only has a few basic functions to control for audio playback, that's all.
  6. I second this, since I have to do this every time with Bluetooth instead of aux cable. I still use optical drive for any movie/game discs to be use on my PC quite often.
  7. Updated all function's codes. This should be final template example to demonstrate make it easier for developers use managed code. I'll give it a week for any feedback input before I mark it solve. Happy coding!
  8. I understood the term "hungarian notation". Yet, I don't really use their way 100%. Only for enumeration (e_xxxxx) and structure (s_xxxx), maybe class (c_xxxx) too, for time being. Why? It's easier to find than look in different files to find name of "something" for a struct or enumeration when performing a big project. getGenericData function's codes has been updated to be 100% fully functional to this date. Except, it still need rename to suit C#'s standard for naming managed code. Feedbacks are still welcome since it will be another 4 days until I can work on this again.
  9. Since you mention it, I'm actually following Halo's developer method for naming the structs. Since this is generic and if other C# developers do preferred PascalCase and camelCase methods, I'll update to meet C# developer's satisfaction for C# code on this topic. Currently my code is working correctly except it's about 80% identical to WIP struct. I'm hoping to get this WIP code 100% done before Sunday so I can mark it as solved. I really like this quote. Though, it feels like it should be this:
  10. s_objectPtr is just a wrapper. As I stated in post #3 to explain reason why IntPtr is inside of it. I'll provide some examples below. So is every single managed code languages existed with support of C standard. However, I had passed by several developers whose rather to code in C# for their conform level. Since Windows API (native ones) does work with managed code, I need to add support for managed code languages as well. public IntPtr getGenericData(uint uniqueId); public IntPtr getPlayerData(uint playerId); public IntPtr getIGraphic([MarshalAs(UnmanagedType.I1)] bool useExtendedVersion); public IntPtr getISound(); These above are just plain and simple functions return IntPtr with no class or struct it provides. Can you tell which class/struct even type of data it uses? No one can unless they go through a lot of reverse engineering process just to find what values it has. Instead of this way, below is more manageable and easier to code with wrapper(s) involvement. UPDATE: All codes are updated and verified. getGenericData function example: getPlayerData function example: getIGraphic function example: getISound function example: For User-defined conversion between structs, have a look at Microsoft's howto link here. From what I understand for class, base on several stackoverflow's site answers, managed code has the ability to choose where to put these values at any place it preferred to. Plus it is not possible to use Marshal.StructureToPtr function on a class type. So, for sure it will be using struct with wrappers to assist developer produce almost no-error development code for runtime processing.
  11. What I'm trying to do is make a functional managed code to work with a returned pointer for many different varieties of structure type. A pointer to a structure has so many values in it which you would see often in games and maybe heavy duty task usage. If I just put a IntPtr, then beginners of C# developers will constant ask me question, "What's the IntPtr is?". Plus a fail-safe to prevent coding the wrong structure type which can lead big confusion where it came from. This is why I use "s_objectPtr" in the code for return value, and another struct for managed data to handle the PtrToStructure function internally. Correct, if I use struct? or struct<Nullable>. These suppose to convert as reference/pointer instead of value type. Compiler will still complaint about this is not compatible Marshaling method. Even with custom marshal class as well.
  12. I'll like some feedback from C# developers to determine which might be best to use. (Excluding partial C-99 standard for managed code.) Since struct cannot have a pointer on return value (even when it's nullable too). One alternate I discovered is doing this method: Which it should be able assist current and future developers to make an Add-on easier. Or in Class method: Both methods do compiled and able to process correctly when called the function. I do plan to add refresh & save function for easier to save the managed s_object back to unmanaged data. Even unmanaged to managed data as well. What do you think?
  13. Are you saying... It's even possible to apply host-side velocity correction to client-side even for super jump cheat on? If so, why not reveal your research so others can implement easier in their builds?
  14. That's true for 32-bit operating system.(Tucker is right, whoops!) Some games, in 64-bit programs, now required at least 6GB of RAM available. For perfect example, 7 Days to Die. Instead of 8GB, I recommended 16GB+ of RAM for gamers, programmers, and some sort of tool engineering use. Windows OS (at least 7) plus other third-party system apps uses around 2GB of RAM.
  15. Big huge thumb up for this! I never thought this would be possible that soon. Plus big hype for custom robot build companion too! At least I had been looting robot parts from the start.