• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision312776329928f0d34140ba085daad1b8a4bb9fdd (tree)
Time2018-12-12 21:56:11
AuthorDeskull <deskull@user...>
CommiterDeskull

Log Message

[Refactor] #37353 mysqrt() を z-util.c へ移動。 / Move mysqrt() to z-util.c.

Change Summary

Incremental Difference

--- a/src/monster2.c
+++ b/src/monster2.c
@@ -197,7 +197,7 @@ void reset_target(monster_type *m_ptr)
197197 */
198198 monster_race *real_r_ptr(monster_type *m_ptr)
199199 {
200- return &r_info[real_r_idx(m_ptr)];
200+ return &r_info[real_r_idx(m_ptr)];
201201 }
202202
203203 MONRACE_IDX real_r_idx(monster_type *m_ptr)
@@ -1216,47 +1216,6 @@ errr get_mon_num_prep(monsterrace_hook_type monster_hook,
12161216 return (0);
12171217 }
12181218
1219-/*!
1220- * @brief 平方根を切り捨て整数で返す
1221- * @param n 数値
1222- * @return 平方根
1223- */
1224-static int mysqrt(int n)
1225-{
1226- int tmp = n>>1;
1227- int tasu = 10;
1228- int kaeriti = 1;
1229-
1230- if (!tmp)
1231- {
1232- if (n) return 1;
1233- else return 0;
1234- }
1235-
1236- while(tmp)
1237- {
1238- if ((n/tmp) < tmp)
1239- {
1240- tmp >>= 1;
1241- }
1242- else break;
1243- }
1244- kaeriti = tmp;
1245- while(tasu)
1246- {
1247- if ((n/tmp) < tmp)
1248- {
1249- tasu--;
1250- tmp = kaeriti;
1251- }
1252- else
1253- {
1254- kaeriti = tmp;
1255- tmp += tasu;
1256- }
1257- }
1258- return kaeriti;
1259-}
12601219
12611220 /*!
12621221 * @brief 生成モンスター種族を1種生成テーブルから選択する
--- a/src/z-util.c
+++ b/src/z-util.c
@@ -282,3 +282,45 @@ int count_bits(BIT_FLAGS x)
282282
283283 return (n);
284284 }
285+
286+/*!
287+ * @brief 平方根を切り捨て整数で返す
288+ * @param n 数値
289+ * @return 平方根
290+ */
291+int mysqrt(int n)
292+{
293+ int tmp = n >> 1;
294+ int tasu = 10;
295+ int kaeriti = 1;
296+
297+ if (!tmp)
298+ {
299+ if (n) return 1;
300+ else return 0;
301+ }
302+
303+ while (tmp)
304+ {
305+ if ((n / tmp) < tmp)
306+ {
307+ tmp >>= 1;
308+ }
309+ else break;
310+ }
311+ kaeriti = tmp;
312+ while (tasu)
313+ {
314+ if ((n / tmp) < tmp)
315+ {
316+ tasu--;
317+ tmp = kaeriti;
318+ }
319+ else
320+ {
321+ kaeriti = tmp;
322+ tmp += tasu;
323+ }
324+ }
325+ return kaeriti;
326+}
\ No newline at end of file
--- a/src/z-util.h
+++ b/src/z-util.h
@@ -65,4 +65,5 @@ extern void s64b_mod(s32b *A1, u32b *A2, s32b B1, u32b B2);
6565 #endif
6666
6767 extern int count_bits(BIT_FLAGS x);
68+extern int mysqrt(int n);
6869
Show on old repository browser