OpenXcom Forum

OpenXcom => Open Feedback => Topic started by: Constantine on November 15, 2016, 08:33:46 pm

Title: How does R button work in battlescape?
Post by: Constantine on November 15, 2016, 08:33:46 pm
I am not idiot, yes, I know it is reload in general (-:

I want to know how exactly it works. For instance, I have 3 different ammos in different body slots. Which one would reload my gun if I press R? And which gun (left of right) will be reloaded?
Title: Re: How does R button work in battlescape?
Post by: Meridian on November 15, 2016, 08:45:29 pm
Right hand is reloaded first, left hand second.
Ammo is taken "randomly"... or in no particular order if you wish.

https://github.com/SupSuper/OpenXcom/blob/master/src/Savegame/BattleUnit.cpp#L2042
Title: Re: How does R button work in battlescape?
Post by: Constantine on November 15, 2016, 09:34:18 pm
Thank you for quick and exact answer.

But why guys don't use constants in the code instead of integer literals?
Title: Re: How does R button work in battlescape?
Post by: Meridian on November 15, 2016, 10:13:55 pm
There's as many explanations to that question as there are people on Earth.
Title: Re: How does R button work in battlescape?
Post by: Constantine on November 15, 2016, 10:42:48 pm
:)

I've read many books on programming. But nowhere I saw a line saying "there are situations where you should not use literals". Every author positively says "you must you const" and gives a pretty good reason.

Could you give at least a couple of such explanations?
Title: Re: How does R button work in battlescape?
Post by: Meridian on November 15, 2016, 11:00:14 pm
I didn't say there are good reasons.
I said there are reasons.

- "It was only a prototype..."
- "Somebody else did it and I didn't fix it yet."
- "We have no guidelines!"
- "15 is a meaning of life..."
- "Because..."
- "Let me just put 15 here, I'll fix it in a minute..."
- "I don't care"
- "Cthulhu made me do it!"
- "What's a constant?"

And another 7.5 billion excuses... what's your favourite? :)

PS: if you've read all those books, why ask the question?

PS2: also, not all forks have 15 hardcoded: https://github.com/MeridianOXC/OpenXcom/blob/oxce3.3-plus-proto/src/Savegame/BattleUnit.cpp#L2310
This one however has number 2 hardcoded... would you put that one in a constant too? :)

PS3: and yes, there are good reasons too... just not for this example
Title: Re: How does R button work in battlescape?
Post by: Constantine on November 16, 2016, 06:16:48 pm
 ;D :) Suspected that, I understand you.

This one however has number 2 hardcoded... would you put that one in a constant too? :)

Two as amount of human's hands? Yes, I would ))
First of all, I don't know at the point how much bizarre the project would be in the future, or how much mad the mod makers are to construct very much mad mod. And readablity one:

Code: [Select]
for (int i = 0; i < HUMAN_HANDS_NUMBER; ++i)
is more self-explanating than just

Code: [Select]
for (int i = 0; i < 2; ++i)
Title: Re: How does R button work in battlescape?
Post by: Solarius Scorch on November 16, 2016, 09:28:43 pm
I've always thought that the clip with lowest TUs to load takes preference... Was I really wrong? I never noticed if it works otherwise.
Title: Re: How does R button work in battlescape?
Post by: Constantine on November 16, 2016, 09:31:10 pm
Every clip from every slot for every weapon takes 15 TUs to reload. Well, mathematically, you were exactly right  ;)
Title: Re: How does R button work in battlescape?
Post by: Meridian on November 16, 2016, 09:47:09 pm
I've always thought that the clip with lowest TUs to load takes preference... Was I really wrong? I never noticed if it works otherwise.

May be like that in OXCE (would have to check)... but I was answering question about OXC.

Every clip from every slot for every weapon takes 15 TUs to reload. Well, mathematically, you were exactly right  ;)

Unless you play with OXCE/OXCE+ :)
Title: Re: How does R button work in battlescape?
Post by: Constantine on November 16, 2016, 09:48:58 pm
Unless you play with OXCE/OXCE+ :)

What do these incantations mean? )
Title: Re: How does R button work in battlescape?
Post by: Meridian on November 16, 2016, 09:52:41 pm
OXC = OpenXcom (by Warboy and SupSuper)
OXCE = OpenXcom Extended (by Yankes)
OXCE+ = OpenXcom Extended Plus (by Meridian)

The latter are different forks of OpenXcom, which extend the functionality of OpenXcom introducing tons of QoL improvements and modding options.

OXCE: https://openxcom.org/forum/index.php/topic,2915.0.html
OXCE+: https://openxcom.org/forum/index.php/topic,4187.0.html
Title: Re: How does R button work in battlescape?
Post by: Solarius Scorch on November 16, 2016, 09:54:53 pm
May be like that in OXCE (would have to check)... but I was answering question about OXC.

Sorry... Haven't played vanilla for so long I forgot it worled differently there. :)