> I'm having a problem with the order in which a simple expression is being > evaluated in conjunction with a shorthand assignment operator. > > The relevant lines are: > (GET_RV(victim, DAM_GEN_INERTIA) = 50; > dam = 230; > dam *= (GET_RV(victim, DAM_GEN_INERTIA) / 100); > > After this line executes, dam = 0. In actuality, it should equal 115, since > (by my understanding of the order of evaluation) 50 divided by 100 equals > 1/2. 230 multiplied by 1/2 equals 115. Yes? My only guess would be that your variables are integers, meaning that int(0.5) might be evaluated to be 0. Try using a "double" variable and see if it helps. (e.g.: double dam; dam = 230.0; dam *= double(GET_RV(victim, DAM_GEN_INERTIA) / 100); Good luck! ___ Jon A. Nielsen Lazarus of Spear of Insanity MUD spear.kilnar.com:1066 http://spear.kilnar.com/ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT