diff --git a/src/deh_soc.c b/src/deh_soc.c
index 1e09221381c857d6236b74aee4a8b5f32940aa43..f2f4286b58c4027a0b063c8cd28d095fd09fff41 100644
--- a/src/deh_soc.c
+++ b/src/deh_soc.c
@@ -917,7 +917,7 @@ static void readspriteframe(MYFILE *f, spriteinfo_t *sprinfo, UINT8 frame)
 					break;
 			}
 			strupr(word);
-			value = atoi(word2); // used for numerical settings
+			value = (INT32)get_number(word2); // used for numerical settings
 
 			if (fastcmp(word, "XPIVOT")) {
 				sprinfo->pivot[frame].x = value;
diff --git a/src/r_picformats.c b/src/r_picformats.c
index 7cc1460dc8c6e91b8c23e7ec6f04f9381664c1e4..398ad7307a6d706813fdb01e43cd8e63a014fd81 100644
--- a/src/r_picformats.c
+++ b/src/r_picformats.c
@@ -1532,27 +1532,27 @@ static void R_ParseSpriteInfoFrame(spriteinfo_t *info)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
-					frameXPivot = atoi(sprinfoToken);
+					frameXPivot = (INT32)get_number(sprinfoToken);
 					info->available = true;
 				}
 				else if (stricmp(sprinfoToken, "YPIVOT")==0)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
-					frameYPivot = atoi(sprinfoToken);
+					frameYPivot = (INT32)get_number(sprinfoToken);
 					info->available = true;
 				}
 				else if (stricmp(sprinfoToken, "XOFFSET")==0)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
-					frameXOffset = atoi(sprinfoToken);
+					frameXOffset = (INT32)get_number(sprinfoToken);
 				}
 				else if (stricmp(sprinfoToken, "YOFFSET")==0)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
-					frameYOffset = atoi(sprinfoToken);
+					frameYOffset = (INT32)get_number(sprinfoToken);
 				}
 				else if (stricmp(sprinfoToken, "ROTAXIS")==0)
 				{