2/06/2012

sort of progress

put up the groundwork for two new npcs: a human hunter, and an escaped leonid (or giantkin, if you have anthro content disabled) convict.  i have a good idea on where i want to take the bounty hunter, but until i find a good way to include persistent world information, none of it will see daylight.  i think i have a decent idea.  basically - either create a giant array or a large stack-type structure filled with numbers, with each number corresponding to a specific 'state' of an event.  so, if you haven't met the bounty hunter yet, the flag will be 0.  once you've found out he's a hunter, it will be set to 0.  etc.  the obvious problem here is discovering complex information about npc's, but this can be solved just by using multiple flags for the same person (eg: one flag relates to how much you know about his past, another relates to how many times you've had sex with him and how comfortable he feels around you).

the convict, i'm not entirely decided on yet.  i know how i want the two to interact but i'm not entirely set on the backstory he'll have yet - i want him to remain a consistent character that the npc can interact with, but i want to avoid making him a typical 'wrongfully accused' type.  guilty, but repentant?  guilty, unrepentant, alpha lonewolf (or lonelion, maybe) who is just so manly that no prison can hold him?  still, i have time to decide.  i figured airing out the idea might help me get some suggestions.

in gui news, still trying to learn.  i figured out how to do more than just make a blank window, sort of, but i can't figure out how to get the code to work just yet.  if someone who knows a bit more about the win32 api than me happens to read this, when i'm creating a child component for a window (a button, text label, etc) what do i pass for the last parameter of CreateWindowEx() or CreateWindow()?  the official api at msdn.microsoft.com says:


Pointer to a value to be passed to the window through the CREATESTRUCT structure (lpCreateParams member) pointed to by the lParam param of the WM_CREATE message. This message is sent to the created window by this function before it returns.
If an application calls CreateWindow to create a MDI client window, lpParam should point to a CLIENTCREATESTRUCT structure. If an MDI client window calls CreateWindow to create an MDI child window, lpParam should point to a MDICREATESTRUCT structure. lpParam may be NULL if no additional data is needed.

i know what a pointer is (i had to learn in order to figure out how to pass multiple objects, like a location and a player, to a function and have it be able to modify both of them; eg. player takes an item from a location) and i know what mdi refers to (and i'm not doing anything with that...  at least, i don't think i am), but i have no idea what the rest of the sentence means, nevermind that the person who wrote it refers to both 'a MDI' and 'an MDI' (i actually did a double take when i read that; this is a professional document, for crying out loud.  do most programmers really have such trouble with the english language?)

i think what it means is that i need to create an [struct] object with CLIENTCREATESTRUCT and then pass a pointer to it as a part of CreateWindowEx(), but all of the tutorials i've been able to find thus far just pass NULL (which the official api actually lists as a valid option), but when i try to do this, it fails.

although, i am finding that visual c++ (while the code it creates looks absolutely nothing like any examples i've seen anywhere else) is at least useful for getting little scraps of information, like x/y coords from.  it's starting to make a bit more sense now, at least.

and yes, i am aware of the irony of complaining that someone, somewhere, put 'a' instead of 'an' in front of a word that begins with a vowel sound when i don't capitalize anything in my own writing.  the difference is, i am not professional: they are.

6 comments:

  1. How about making that convict a gentleman thief? Or similar. They're always lovable.

    And, I thought the whole a / an thing is decided how you pronounce the word?

    ReplyDelete
    Replies
    1. i do have plans for a gentleman thief elsewhere. this guy is going to be a bit more simple and brutish.

      yes, it's dependent on the pronunciation. since mdi is an acronym, you'd pronounce each letter individually, so the first phoneme would be a mid or close-mid front unrounded vowel, so 'e' or 'e̞'which means you'd want to put 'an' in front of it.

      Delete
  2. You could make the convict guilty and unrepentant, but from a culture where the crime he committed isn't considered a crime, so he feels as though he was unjustly inprisioned even though he's self admittedly guilty. Could be a different spin on the archetype, and foreshadow meeting more people from that culture later in the game, which is always interesting too.

    ReplyDelete
    Replies
    1. i like this idea. there's no proper leonid cities slated yet (i think i would need to add another island/continent at some point if i were going to add more cities), so any other meetings would probably be with individuals or small groups.

      Delete
    2. You could make those groups similar to the khajit in Skyrim, meaning they'd be merchant groups that wander around.

      Delete
  3. @aamaxu - the roamers are exactly that. they're about human height (maybe a bit smaller), and have a variety of solid and simple patterns (mostly the type you'd see on domesticated cats). leonid are larger and lion-like, intended to have more of a 'tribal native' feel.

    admittedly, though, without any sort of codex, there's no way to tell that.

    ReplyDelete