浏览代码

Some code cleaning...

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11505 54d463be-8e91-2dee-dedb-b68131a5f0ec
ultramage 17 年之前
父节点
当前提交
d2b9e2498e
共有 12 个文件被更改,包括 71 次插入118 次删除
  1. 0 1
      conf/log_athena.conf
  2. 1 1
      src/char/inter.c
  3. 6 8
      src/map/atcommand.c
  4. 3 3
      src/map/charcommand.c
  5. 3 3
      src/map/clif.c
  6. 31 66
      src/map/map.c
  7. 5 5
      src/map/map.h
  8. 1 1
      src/map/mercenary.c
  9. 12 15
      src/map/npc.c
  10. 4 10
      src/map/pc.c
  11. 1 1
      src/map/script.c
  12. 4 4
      src/map/skill.c

+ 0 - 1
conf/log_athena.conf

@@ -93,7 +93,6 @@ log_npc: 0
 // log_chat: 12 = logs both Whisper & Party messages
 // log_chat: 16 = logs only Guild messages
 // log_chat: 68 = logs only Whisper, when WOE is off
-
 log_chat: 0
 
 // Dead Branch Log Table

+ 1 - 1
src/char/inter.c

@@ -677,7 +677,7 @@ int inter_parse_frommap(int fd) {
 	len = 0;
 
 	// interŽIŠÇŠ�‚©‚𒲂ׂé
-	if (cmd < 0x3000 || cmd >= 0x3000 + (sizeof(inter_recv_packet_length) / sizeof(inter_recv_packet_length[0])))
+	if (cmd < 0x3000 || cmd >= 0x3000 + ARRAYLENGTH(inter_recv_packet_length))
 		return 0;
 	
 	if (inter_recv_packet_length[cmd-0x3000] == 0) //This is necessary, because otherwise we return 2 and the char server will just hang waiting for packets! [Skotlex]

+ 6 - 8
src/map/atcommand.c

@@ -2143,7 +2143,7 @@ int atcommand_jobchange(const int fd, struct map_session_data* sd, const char* c
 			{ "soul linker",	4049 },
 		};
 
-		for (i=0; i < (int)(sizeof(jobs) / sizeof(jobs[0])); i++) {
+		for (i=0; i < ARRAYLENGTH(jobs); i++) {
 			if (strncmpi(message, jobs[i].name, 16) == 0) {
 				job = jobs[i].id;
 				upper = 0;
@@ -3053,7 +3053,7 @@ int atcommand_go(const int fd, struct map_session_data* sd, const char* command,
 	town = atoi(message);
  
 	// if no value, display all value
-	if (!message || !*message || sscanf(message, "%15s", map_name) < 1 || town < -3 || town >= (int)(sizeof(data) / sizeof(data[0]))) {
+	if (!message || !*message || sscanf(message, "%15s", map_name) < 1 || town < -3 || town >= ARRAYLENGTH(data)) {
 		clif_displaymessage(fd, msg_txt(38)); // Invalid location number or name.
 		clif_displaymessage(fd, msg_txt(82)); // Please, use one of this number/name:
 		clif_displaymessage(fd, " 0=Prontera         1=Morroc       2=Geffen");
@@ -3161,7 +3161,7 @@ int atcommand_go(const int fd, struct map_session_data* sd, const char* command,
 				clif_displaymessage(fd, atcmd_output);
 				return -1;
 			}
-		} else if (town >= 0 && town < (int)(sizeof(data) / sizeof(data[0]))) {
+		} else if (town >= 0 && town < ARRAYLENGTH(data)) {
 			m = map_mapname2mapid((char *)data[town].map);
 			if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) {
 				clif_displaymessage(fd, msg_txt(247));
@@ -3917,7 +3917,7 @@ int atcommand_stat_all(const int fd, struct map_session_data* sd, const char* co
 	}
 
 	count = 0;
-	for (index = 0; index < (int)(sizeof(status) / sizeof(status[0])); index++) {
+	for (index = 0; index < ARRAYLENGTH(status); index++) {
 
 		if (value > 0 && *status[index] > max - value)
 			new_value = max;
@@ -6302,10 +6302,8 @@ int atcommand_npcmove(const int fd, struct map_session_data* sd, const char* com
 		return -1;	//Not on a map.
 	}
 	
-	if (x < 0) x = 0;
-	else if (x >= map[m].xs) x = map[m].xs-1;
-	if (y < 0) y = 0;
-	else if (y >= map[m].ys) y = map[m].ys-1;
+	x = cap_value(x, 0, map[m].xs-1);
+	y = cap_value(y, 0, map[m].ys-1);
 	map_foreachinrange(clif_outsight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl);
 	map_moveblock(&nd->bl, x, y, gettick());
 	map_foreachinrange(clif_insight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl);

+ 3 - 3
src/map/charcommand.c

@@ -2578,11 +2578,11 @@ int charcommand_param(const int fd, struct map_session_data* sd, const char* com
 	status[5] = &pl_sd->status.luk;
 
 	index = -1;
-	for (index = 0; index < sizeof(param)/sizeof(param[0]); index++) {
+	for (index = 0; index < ARRAYLENGTH(param); index++) {
 		if (strcmpi(command, param[index]) == 0)
 			break;
 	}
-	if (index == sizeof(param)/sizeof(param[0]) || index > MAX_STATUS_TYPE) {
+	if (index == ARRAYLENGTH(param) || index > MAX_STATUS_TYPE) {
 		// normaly impossible...
 		sprintf(output, "Please, enter a valid value (usage: #str,#agi,#vit,#int,#dex,#luk <+/-adjustment> <player>).");
 		clif_displaymessage(fd, output);
@@ -2964,7 +2964,7 @@ int charcommand_allstats(const int fd, struct map_session_data* sd, const char*
 
 	count = 0;
 	max = pc_maxparameter(pl_sd);
-	for (index = 0; index < (int)(sizeof(status) / sizeof(status[0])); index++) {
+	for (index = 0; index < ARRAYLENGTH(status); index++) {
 
 		if (value > 0 && *status[index] > max - value)
 			new_value = max;

+ 3 - 3
src/map/clif.c

@@ -8152,7 +8152,7 @@ void check_fake_id(int fd, struct map_session_data *sd, int target_id)
 		memset(WPACKETP(0), 0, packet_len(0x95));
 		WPACKETW(0) = 0x95;
 		WPACKETL(2) = server_fake_mob_id;
-		fake_mob = fake_mob_list[(sd->bl.m + sd->fd + sd->status.char_id) % (sizeof(fake_mob_list) / sizeof(fake_mob_list[0]))]; // never same mob
+		fake_mob = fake_mob_list[(sd->bl.m + sd->fd + sd->status.char_id) % ARRAYLENGTH(fake_mob_list)]; // never same mob
 		if (!mobdb_checkid(fake_mob))
 			fake_mob = 1002; // poring (default)
 		strncpy(WPACKETP(6), mob_db[fake_mob].name, 24);
@@ -11775,7 +11775,7 @@ static int packetdb_readdb(void)
 
 	// initialize packet_db[SERVER] from hardcoded packet_len_table[] values
 	memset(packet_db,0,sizeof(packet_db));
-	for( i = 0; i < sizeof(packet_len_table)/sizeof(packet_len_table[0]); ++i )
+	for( i = 0; i < ARRAYLENGTH(packet_len_table); ++i )
 		packet_len(i) = packet_len_table[i];
 
 	sprintf(line, "%s/packet_db.txt", db_path);
@@ -11868,7 +11868,7 @@ static int packetdb_readdb(void)
 			ln++;
 			continue;
 		}
-		for(j=0;j<sizeof(clif_parse_func)/sizeof(clif_parse_func[0]);j++){
+		for(j=0;j<ARRAYLENGTH(clif_parse_func);j++){
 			if(clif_parse_func[j].name != NULL && strcmp(str[2],clif_parse_func[j].name)==0)
 			{
 				if (packet_db[packet_ver][cmd].func != clif_parse_func[j].func)

+ 31 - 66
src/map/map.c

@@ -319,8 +319,7 @@ static struct block_list bl_head;
  *------------------------------------------*/
 void map_addblcell(struct block_list *bl)
 {
-	if(bl->m<0 || bl->x<0 || bl->x>=map[bl->m].xs
-		|| bl->y<0 || bl->y>=map[bl->m].ys || !(bl->type&BL_CHAR))
+	if( bl->m<0 || bl->x<0 || bl->x>=map[bl->m].xs || bl->y<0 || bl->y>=map[bl->m].ys || !(bl->type&BL_CHAR) )
 		return;
 	map[bl->m].cell_bl[bl->x+bl->y*map[bl->m].xs]++;
 	return;
@@ -328,8 +327,7 @@ void map_addblcell(struct block_list *bl)
 
 void map_delblcell(struct block_list *bl)
 {
-	if(bl->m <0 || bl->x<0 || bl->x>=map[bl->m].xs
-		|| bl->y<0 || bl->y>=map[bl->m].ys || !(bl->type&BL_CHAR))
+	if( bl->m <0 || bl->x<0 || bl->x>=map[bl->m].xs || bl->y<0 || bl->y>=map[bl->m].ys || !(bl->type&BL_CHAR) )
 		return;
 	map[bl->m].cell_bl[bl->x+bl->y*map[bl->m].xs]--;
 }
@@ -549,6 +547,7 @@ int map_count_oncell(int m, int x, int y, int type)
 
 	if (x < 0 || y < 0 || (x >= map[m].xs) || (y >= map[m].ys))
 		return 0;
+
 	bx = x/BLOCK_SIZE;
 	by = y/BLOCK_SIZE;
 
@@ -612,16 +611,12 @@ int map_foreachinrange(int (*func)(struct block_list*,va_list), struct block_lis
 	int blockcount=bl_list_count,i,c;
 	int x0,x1,y0,y1;
 	va_start(ap,type);
+
 	m = center->m;
-	x0 = center->x-range;
-	x1 = center->x+range;
-	y0 = center->y-range;
-	y1 = center->y+range;
-	
-	if (x0 < 0) x0 = 0;
-	if (y0 < 0) y0 = 0;
-	if (x1 >= map[m].xs) x1 = map[m].xs-1;
-	if (y1 >= map[m].ys) y1 = map[m].ys-1;
+	x0 = max(center->x-range, 0);
+	y0 = max(center->y-range, 0);
+	x1 = min(center->x+range, map[m].xs-1);
+	y1 = min(center->y+range, map[m].ys-1);
 	
 	if (type&~BL_MOB)
 		for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) {
@@ -689,16 +684,12 @@ int map_foreachinshootrange(int (*func)(struct block_list*,va_list),struct block
 	if (m < 0)
 		return 0;
 	va_start(ap,type);
-	x0 = center->x-range;
-	x1 = center->x+range;
-	y0 = center->y-range;
-	y1 = center->y+range;
-	
-	if (x0 < 0) x0 = 0;
-	if (y0 < 0) y0 = 0;
-	if (x1 >= map[m].xs) x1 = map[m].xs-1;
-	if (y1 >= map[m].ys) y1 = map[m].ys-1;
-	
+
+	x0 = max(center->x-range, 0);
+	y0 = max(center->y-range, 0);
+	x1 = min(center->x+range, map[m].xs-1);
+	y1 = min(center->y+range, map[m].ys-1);
+
 	if (type&~BL_MOB)
 		for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) {
 			for(bx=x0/BLOCK_SIZE;bx<=x1/BLOCK_SIZE;bx++){
@@ -846,6 +837,7 @@ int map_foreachinmovearea(int (*func)(struct block_list*,va_list), struct block_
 	if (!dx && !dy) return 0; //No movement.
 	va_start(ap,type);
 	m = center->m;
+
 	x0 = center->x-range;
 	x1 = center->x+range;
 	y0 = center->y-range;
@@ -2326,45 +2318,19 @@ void map_setcell(int m,int x,int y,int cell)
 	j=x+y*map[m].xs;
 
 	switch (cell) {
-		case CELL_SETNPC:
-			map[m].cell[j] |= CELL_NPC;
-			break;
-		case CELL_CLRNPC:
-			map[m].cell[j] &= ~CELL_NPC;
-			break;
-		case CELL_SETICEWALL:
-			map[m].cell[j] |= CELL_ICEWALL;
-			break;
-		case CELL_CLRICEWALL:
-			map[m].cell[j] &= ~CELL_ICEWALL;
-			break;
-		case CELL_SETBASILICA:
-			map[m].cell[j] |= CELL_BASILICA;
-			break;
-		case CELL_CLRBASILICA:
-			map[m].cell[j] &= ~CELL_BASILICA;
-			break;
-		case CELL_SETPNEUMA:
-			map[m].cell[j] |= CELL_PNEUMA;
-			break;
-		case CELL_CLRPNEUMA:
-			map[m].cell[j] &= ~CELL_PNEUMA;
-			break;
-		case CELL_SETSAFETYWALL:
-			map[m].cell[j] |= CELL_SAFETYWALL;
-			break;
-		case CELL_CLRSAFETYWALL:
-			map[m].cell[j] &= ~CELL_SAFETYWALL;
-			break;
-		case CELL_SETLANDPROTECTOR:
-			map[m].cell[j] |= CELL_LANDPROTECTOR;
-			break;
-		case CELL_CLRLANDPROTECTOR:
-			map[m].cell[j] &= ~CELL_LANDPROTECTOR;
-			break;
-		case CELL_SETREGEN:
-			map[m].cell[j] |= CELL_REGEN;
-			break;
+		case CELL_SETNPC:           map[m].cell[j] |= CELL_NPC;            break;
+		case CELL_CLRNPC:           map[m].cell[j] &= ~CELL_NPC;           break;
+		case CELL_SETICEWALL:       map[m].cell[j] |= CELL_ICEWALL;        break;
+		case CELL_CLRICEWALL:       map[m].cell[j] &= ~CELL_ICEWALL;       break;
+		case CELL_SETBASILICA:      map[m].cell[j] |= CELL_BASILICA;       break;
+		case CELL_CLRBASILICA:      map[m].cell[j] &= ~CELL_BASILICA;      break;
+		case CELL_SETPNEUMA:        map[m].cell[j] |= CELL_PNEUMA;         break;
+		case CELL_CLRPNEUMA:        map[m].cell[j] &= ~CELL_PNEUMA;        break;
+		case CELL_SETSAFETYWALL:    map[m].cell[j] |= CELL_SAFETYWALL;     break;
+		case CELL_CLRSAFETYWALL:    map[m].cell[j] &= ~CELL_SAFETYWALL;    break;
+		case CELL_SETLANDPROTECTOR: map[m].cell[j] |= CELL_LANDPROTECTOR;  break;
+		case CELL_CLRLANDPROTECTOR: map[m].cell[j] &= ~CELL_LANDPROTECTOR; break;
+		case CELL_SETREGEN:         map[m].cell[j] |= CELL_REGEN;          break;
 		default:
 			map[m].gat[j] = cell;
 			break;
@@ -2494,7 +2460,7 @@ int map_addmap(char* mapname)
 
 static void map_delmapid(int id)
 {
-	ShowNotice("Removing map [ %s ] from maplist\n",map[id].name);
+	ShowNotice("Removing map [ %s ] from maplist\n"CL_CLL,map[id].name);
 	memmove(map+id, map+id+1, sizeof(map[0])*(map_num-id-1));
 	map_num--;
 }
@@ -2569,7 +2535,7 @@ int map_readgat (struct map_data* m)
 
 	xs = m->xs = *(int*)(gat+6);
 	ys = m->ys = *(int*)(gat+10);
-	m->gat = (unsigned char *)aMallocA((m->xs * m->ys)*sizeof(unsigned char));
+	m->gat = (unsigned char *)aMallocA((xs * ys)*sizeof(unsigned char));
 
 	wh = map_waterheight(m->name);
 	for (y = 0; y < ys; y++) {
@@ -2633,7 +2599,7 @@ int map_readallmaps (void)
 
 		if (uidb_get(map_db,(unsigned int)map[i].index) != NULL)
 		{
-			ShowWarning("Map %s already loaded!\n", map[i].name);
+			ShowWarning("Map %s already loaded!\n"CL_CLL, map[i].name);
 			if (map[i].gat) {
 				aFree(map[i].gat);
 				map[i].gat = NULL;	
@@ -2677,7 +2643,6 @@ int map_readallmaps (void)
 		fclose(fp);
 
 	// finished map loading
-	printf("\r");
 	ShowInfo("Successfully loaded '"CL_WHITE"%d"CL_RESET"' maps."CL_CLL"\n",map_num);
 
 	if (maps_removed)

+ 5 - 5
src/map/map.h

@@ -1032,9 +1032,9 @@ enum {
 
 struct map_data {
 	char name[MAP_NAME_LENGTH];
-	unsigned short index; //Index is the map index used by the mapindex* functions.
-	unsigned char *gat; // If this is NULL, the map is not on this map-server
-	unsigned char *cell; //Contains temporary cell data that is set/unset on tiles.
+	unsigned short index; // The map index used by the mapindex* functions.
+	unsigned char *gat;   // Holds the type of each map cell (NULL if the map is not on this map-server).
+	unsigned char *cell;  // Contains temporary cell data that is set/unset on tiles.
 #ifdef CELL_NOSTACK
 	unsigned char *cell_bl; //Holds amount of bls in any given cell.
 #endif
@@ -1042,8 +1042,8 @@ struct map_data {
 	struct block_list **block_mob;
 	int *block_count,*block_mob_count;
 	int m;
-	short xs,ys;
-	short bxs,bys;
+	short xs,ys; // map dimensions (in cells)
+	short bxs,bys; // map dimensions (in blocks)
 	int npc_num;
 	int users;
 	struct map_flag {

+ 1 - 1
src/map/mercenary.c

@@ -1163,7 +1163,7 @@ int do_init_merc(void)
 
 	//Stock view data for homuncs
 	memset(&hom_viewdb, 0, sizeof(hom_viewdb));
-	for (class_ = 0; class_ < sizeof(hom_viewdb)/sizeof(hom_viewdb[0]); class_++) 
+	for (class_ = 0; class_ < ARRAYLENGTH(hom_viewdb); class_++) 
 		hom_viewdb[class_].class_ = HM_CLASS_BASE+class_;
 	return 0;
 }

+ 12 - 15
src/map/npc.c

@@ -828,16 +828,12 @@ int npc_check_areanpc(int flag, int m, int x, int y, int range)
 	int xs,ys;
 
 	if (range < 0) return 0;
-	x0 = x-range;
-	x1 = x+range;
-	y0 = y-range;
-	y1 = y+range;
+	x0 = max(x-range, 0);
+	y0 = max(y-range, 0);
+	x1 = min(x+range, map[m].xs-1);
+	y1 = min(y+range, map[m].ys-1);
 	
 	//First check for npc_cells on the range given
-	if (x0 < 0) x0 = 0;
-	if (y0 < 0) y0 = 0;
-	if (x1 >= map[m].xs) x1 = map[m].xs-1;
-	if (y1 >= map[m].ys) y1 = map[m].ys-1;
 	i = 0;
 	for (ys = y0; ys <= y1 && !i; ys++) {
 		for(xs = x0; xs <= x1 && !i; xs++){
@@ -848,11 +844,13 @@ int npc_check_areanpc(int flag, int m, int x, int y, int range)
 	if (!i) return 0; //No NPC_CELLs.
 
 	//Now check for the actual NPC on said range.
-	for(i=0;i<map[m].npc_num;i++) {
+	for(i=0;i<map[m].npc_num;i++)
+	{
 		if (map[m].npc[i]->sc.option&OPTION_INVISIBLE)
 			continue;
 
-		switch(map[m].npc[i]->bl.subtype) {
+		switch(map[m].npc[i]->bl.subtype)
+		{
 		case WARP:
 			if (!(flag&1))
 				continue;
@@ -868,9 +866,10 @@ int npc_check_areanpc(int flag, int m, int x, int y, int range)
 		default:
 			continue;
 		}
+
 		if (x1 >= map[m].npc[i]->bl.x-xs/2 && x0 < map[m].npc[i]->bl.x-xs/2+xs &&
 			y1 >= map[m].npc[i]->bl.y-ys/2 && y0 < map[m].npc[i]->bl.y-ys/2+ys)
-			break;
+			break; // found a npc
 	}
 	if (i==map[m].npc_num)
 		return 0;
@@ -1959,10 +1958,8 @@ void npc_movenpc(struct npc_data* nd, int x, int y)
 	const int m = nd->bl.m;
 	if (m < 0 || nd->bl.prev == NULL) return;	//Not on a map.
 
-	if (x < 0) x = 0;
-	else if (x >= map[m].xs) x = map[m].xs-1;
-	if (y < 0) y = 0;
-	else if (y >= map[m].ys) y = map[m].ys-1;
+	x = cap_value(x, 0, map[m].xs-1);
+	x = cap_value(y, 0, map[m].ys-1);
 
 	npc_unsetcells(nd);
 	map_foreachinrange(clif_outsight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl);

+ 4 - 10
src/map/pc.c

@@ -2761,16 +2761,10 @@ int pc_getzeny(struct map_session_data *sd,int zeny)
 int pc_search_inventory(struct map_session_data *sd,int item_id)
 {
 	int i;
-
 	nullpo_retr(-1, sd);
 
-	for(i=0;i<MAX_INVENTORY;i++) {
-		if(sd->status.inventory[i].nameid == item_id &&
-		 (sd->status.inventory[i].amount > 0 || item_id == 0))
-			return i;
-	}
-
-	return -1;
+	ARR_FIND( 0, MAX_INVENTORY, i, sd->status.inventory[i].nameid == item_id && (sd->status.inventory[i].amount > 0 || item_id == 0) );
+	return ( i < MAX_INVENTORY ) ? i : -1;
 }
 
 /*==========================================
@@ -3660,7 +3654,7 @@ int pc_checkallowskill(struct map_session_data *sd)
 	if(!sd->sc.count)
 		return 0;
 	
-	for (i = 0; i < sizeof(scw_list)/sizeof(scw_list[0]); i++)
+	for (i = 0; i < ARRAYLENGTH(scw_list); i++)
 	{	// Skills requiring specific weapon types
 		if(sd->sc.data[scw_list[i]].timer!=-1 &&
 			!pc_check_weapontype(sd,skill_get_weapontype(StatusSkillChangeTable[scw_list[i]])))
@@ -3672,7 +3666,7 @@ int pc_checkallowskill(struct map_session_data *sd)
 		status_change_end(&sd->bl,SC_SPURT,-1);
 	
 	if(sd->status.shield <= 0) { // Skills requiring a shield
-		for (i = 0; i < sizeof(scs_list)/sizeof(scs_list[0]); i++)
+		for (i = 0; i < ARRAYLENGTH(scs_list); i++)
 			if(sd->sc.data[scs_list[i]].timer!=-1)
 				status_change_end(&sd->bl,scs_list[i],-1);
 	}

+ 1 - 1
src/map/script.c

@@ -1936,7 +1936,7 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o
 	if( setjmp( error_jump ) != 0 ) {
 		//Restore program state when script has problems. [from jA]
 		int i;
-		const int size = sizeof(syntax.curly)/sizeof(syntax.curly[0]);
+		const int size = ARRAYLENGTH(syntax.curly);
 		if( error_report )
 			script_error(src,file,line,error_msg,error_pos);
 		aFree( error_msg );

+ 4 - 4
src/map/skill.c

@@ -1789,13 +1789,13 @@ int skill_strip_equip(struct block_list *bl, unsigned short where, int rate, int
 	if (!sc)
 		return 0;
 
-	for (i = 0; i < sizeof(pos)/sizeof(pos[0]); i++) {
+	for (i = 0; i < ARRAYLENGTH(pos); i++) {
 		if (where&pos[i] && sc->data[sc_def[i]].timer != -1)
 			where&=~pos[i]; 
 	}
 	if (!where) return 0;
 
-	for (i = 0; i < sizeof(pos)/sizeof(pos[0]); i++) {
+	for (i = 0; i < ARRAYLENGTH(pos); i++) {
 		if (where&pos[i] && !sc_start(bl, sc_atk[i], 100, lv, time))
 			where&=~pos[i];
 	}
@@ -3709,7 +3709,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		{
 			static int changeclass[]={1038,1039,1046,1059,1086,1087,1112,1115
 				,1157,1159,1190,1272,1312,1373,1492};
-			int class_ = mob_random_class (changeclass,sizeof(changeclass)/sizeof(changeclass[0]));
+			int class_ = mob_random_class (changeclass,ARRAYLENGTH(changeclass));
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
 			if(dstmd) mob_class_change(dstmd,class_);
 		}
@@ -3717,7 +3717,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case SA_MONOCELL:
 		{
 			static int poringclass[]={1002};
-			int class_ = mob_random_class (poringclass,sizeof(poringclass)/sizeof(poringclass[0]));
+			int class_ = mob_random_class (poringclass,ARRAYLENGTH(poringclass));
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
 			if(dstmd) mob_class_change(dstmd,class_);
 		}